问题标签 [react-on-rails]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - 如何在 Rails 上的非反应 javascript 中使用 jquery?
我最近将react_on_rails (NOT react-rails
) Gem 合并到我的 rails 4.2 代码库中。
我想将新的 React 组件引入到已经有大量 JavaScript 代码的应用程序中。
我运行了“hello world”生成器以在 Rails上做出反应,除此之外,它注释掉了//= require jquery
我的行application.js
——因此,我预先存在的咖啡脚本(取决于jquery
是否存在)不再起作用。但是新生成的演示hello world
反应组件确实有效。
当我从 my中注释掉添加的//= require vendor-bundle
和行并重新添加行时 - 发生相反的情况,反应组件停止工作,但预先存在的咖啡脚本再次工作。//= require app-bundle
application.js
//= require jquery
我的问题是——我该如何设置才能让两者都工作?也就是说,新的反应组件可以工作,并且预先存在的咖啡脚本(依赖于 jquery)也可以工作。
提前致谢!
react-rails - 使用 react_on_rails 如何重新安装类似于 ReactRailsUJS.mountComponents 的组件
在一个 react rails 项目中,我已经从 react-rails gem 转换为 react_on_rails。无限滚动中显示的某些组件在使用 滚动时会重新安装ReactRailsUJS.mountComponents
。如何使用 react_on_rails 以这种方式重新安装组件
ruby-on-rails - 在生产中部署我的 react-on-rails 应用程序时出错
我已经在我们的生产环境(Ubuntu 14.04.3 LTS)上安装了 nam 和节点,现在尝试部署一个使用 gem react-on-rails 来实现 Redux / ReactJS 的 rails 应用程序。在开发环境中一切正常,但我觉得我在这里碰壁了。
执行 npm run build:production 时出现问题,即 "build:production": "NODE_ENV=production webpack --config webpack.config.js"
这是部署期间的日志:
这是 webpack.config.js 文件:
用我的 package.json 更新
你们有什么想法可能是错的吗?我刚刚意识到在生产环境中我有节点 v4.6.0,但在 Rails 上做出反应至少需要节点 5。也许我的问题出在那儿..
我的 rails 项目的 app/assets 文件夹下确实有 web pack-bundle.js 文件。所以文件没有丢失
ruby-on-rails - 如何在 heroku 上修复这个 webpack 部署错误?
尝试将 react_on_rails 应用程序部署到 heroku 时。我收到以下一系列错误。在本地一切正常,但是当我尝试部署到 heroku 时,我得到:
该错误似乎很简单,但我不明白为什么它找不到文件。它在我的本地机器上发现它们非常好,所以我不明白出了什么问题。
redux - 子组件会重新渲染,但父组件不会
我有两个组件,每个组件都通过容器连接,并且都具有通过提供的状态映射的道具。
有一种操作会导致子组件重新渲染,而其父组件不会。我不明白这怎么可能。
我确定我的减速器没有改变状态。此操作和重新渲染差异的结果是子组件中的道具未定义(因为它已成功从状态中删除)。但是,如果父级的渲染函数会按照我的预期重新运行,那么该渲染函数将不会运行。
为什么状态改变时父组件的渲染函数没有被调用?
ruby-on-rails - 带有 React 的 Ruby on Rails 得到 NoMethodError
以下是我的控制器 Projects#show 方法。
以下是我的 Projects#show view html.erb 文件。
以下是我的反应前端
我得到的错误信息是:
在 ActiveRecord 中完成 500 内部服务器错误。
NoMethodError(ProjectsController#show:0x007fa195b59da0 的未定义方法`'
在 2016-11-24 06:31:38 -0800 开始 GET "/projects/1" for 127.0.0.1 由 ProjectsController#show 作为 HTML 参数处理:{"id"=>"1"} 用户负载 (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT 1 [["id", 2]]
Project Load (0.1ms) SELECT "projects".* FROM "projects" WHERE "projects"."id" = ? LIMIT 1 [["id", 1]] 用户负载 (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 1]]
(0.1ms) SELECT "relationships"."supervisor_id" FROM "relationships" WHERE (supervisor_id = 1) 用户负载 (0.NoMethodError (undefined method '' for#): app/controllers/projects_controller.rb:11:in `show'
渲染 /home/ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_source.erb (2.7ms)渲染 /home/ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.1毫秒)渲染/home/ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (2.0ms)渲染/home/ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/diagnostics.html救援/布局中的 .erb (19.6ms) 渲染 /home/ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/web-console-2.3.0/lib/web_console/templates /_markup.html.erb (0.2ms) 渲染 /home/ferg/。rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/web-console-2.3.0/lib/web_console/templates/_inner_console_markup.html.erb 在 layouts/inlined_string (0.2ms) 内渲染 /home /ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/web-console-2.3.0/lib/web_console/templates/_prompt_box_markup.html.erb 在 layouts/inlined_string (0.3ms ) 在 layouts/ 中渲染 /home/ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/web-console-2.3.0/lib/web_console/templates/style.css.erb inlined_string (0.4ms) 渲染 /home/ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/web-console-2.3.0/lib/web_console/templates/console.js。 layouts/javascript (22.3ms) 内的 erb 渲染 /home/ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/web-console-2.3.0/lib/web_console/templates/ layouts/javascript 中的 main.js.erb (0.2ms)在布局中渲染/home/ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/web-console-2.3.0/lib/web_console/templates/error_page.js.erb /javascript (0.2ms) 渲染 /home/ferg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/web-console-2.3.0/lib/web_console/templates/index.html .erb (34.9ms)
ruby-on-rails - React on Rails Gem - Foreman Thor 冲突
我一直在尝试使用此处找到的教程来实现react_on_rails gem 。
不同之处在于我使用的是 ruby 2.3.3,节点 7.2.0,并使用 redux ( rails generate react_on_rails:install --redux
)运行设置
但是现在当我尝试运行工头时,foreman run -f Procfile.dev
我收到以下错误:
知道为什么会发生这种情况以及如何解决吗?
Procfile.dev 包含:
我可以从命令行正常运行,但不能使用工头。
ruby-on-rails - 从 rails 应用程序访问 webpack 资产
我正在使用 webpack 和 React on Rails,并且有一些需要引用图像的反应组件。
我遇到的问题是试图让 Rails 访问图像。Rails 从其通常的 app/assets/images 目录提供图像,该目录通过 url /assets 访问
但是,如果我在图像目录中有一个反应组件和一个图像:
组件.js
图片/image.jpg
+--component.js +--images/image.jpg
如果我尝试通过其在 component.js 中的相对路径来引用图像,例如当我在 rails 中加载页面时,页面会尝试访问 url http://localhost:3000/home/images/image.jpg而不是那个rails 期望资产为http://localhost:3000/assets/images/image.jpg
有谁知道如何纠正这个?
这是我的 webpack.config
npm - 当通过 NVM 安装 NPM 时,Capistrano 部署失败并出现 react_on_rails
失败的命令cd client && npm run build:production
来自https://github.com/shakacode/react_on_rails/blob/master/lib/tasks/assets.rake
使用时capistrano-npm
,capistrano-nvm
它使用这些内容创建/tmp/my_app_name/nvm-exec.sh
并使用它在根 rails 应用程序中npm install
运行。package.json
但它不用于为 React 客户端运行命令。
这是输出:
这是我的依赖项:
ruby-on-rails - 如何在 ReactJS 中使用嵌套表单?
考虑这个代码片段:
它会返回给我一些哈希(rails dev 会知道)。我的问题是如何在 ReactJS 中制作这种格式?接收与 Rails 完成的默认参数完全相同的参数。至于现在我只能在 JSX 中使用 HTML 标签。目前我在控制器中接收参数并根据需要对它们进行排序(这似乎是不好的方法)。我已经测试了一些 npm 包,但他们的文档似乎没有帮助!其中包括: https ://www.npmjs.com/package/react-rails-form-helpers
https://www.npmjs.com/package/react-form
有没有为此的任何 npm 包?在 Rails 5 stable 中使用 react_on_rails gem