问题标签 [react-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.

0 投票
0 回答
217 浏览

ruby-on-rails-4 - 未捕获的不变违规:ReactCompositeComponent.render():必须返回有效的 ReactComponent

在 react 的 render 方法中,我试图根据 state 变量渲染一些孩子。下面引用的是相同的代码:

这导致我出现错误:"Uncaught Invariant Violation: ReactCompositeComponent.render(): A valid ReactComponent must be returned. You may have returned undefined, an array or some other invalid object."

但是,当我将这个渲染部分AdminDeleteModal移到 @adminRow() 方法的末尾时,它可以工作:

虽然,这会导致在 tr 中包含 div 的另一个问题,从而导致以下警告:

更新:使用以下建议更新了代码

0 投票
2 回答
2921 浏览

javascript - Rails-React 不适用于 ES6

我正在使用react-rails gem,我正在尝试在 ES6 中编写一些看起来像这样的组件。

我的link_list.js.jsx文件

我不断收到这个Uncaught ReferenceError: require is not defined 和一个错误,上面写着Warning: React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components).

和错误Uncaught Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.

这是我的代码的问题还是 gem 没有编译 ES6 的问题?

0 投票
0 回答
303 浏览

ruby-on-rails - React::ServerRendering::PrerenderError 与 react prerender: true

我在使用prerender: true. 我正在使用react-rails gems 它的工作正常prerender: false

0 投票
2 回答
170 浏览

ruby-on-rails - 使用 Rails 5 beta.3 安装 react-rails 时出错

使用 Ruby 2.2.3 运行新安装的 Rails 5 beta 3。在 gem 文件中添加react-rails 1.6.0然后捆绑安装。

然后安装rails s。然后报错:

用户/sylar/.rvm/gems/ruby-2.2.3/bundler/gems/rails-442207387e62/railties/lib/rails/railtie/configuration.rb:95:in method_missing': undefined methodassets' for # (NoMethodError)

这是 react-rails 问题还是 rails 5 本身?在 Rails 4.2.5 中工作正常。

0 投票
1 回答
107 浏览

ruby-on-rails - ReactJS + Rails:HABTM 不在属性中,因此无法保存

我是构建 ReactJS (react-on-rails) + Rails 应用程序的一部分。我自己(还)不是 ReactJS 开发人员,但在选择 ReactJS 后被带入项目。

我的问题是关于通过创建和编辑发布请求从 React 发送到 Rails 的参数。我在这种情况下的模型:

ReactJS 使用 Formsy-react 作为表单,我使用并修改了 react-select 作为多选表单,以满足 Formsy 的映射要求。

以下数据通过 React 的 .post('/sras').send(data) 从 ReactJS 发送:

我无法弄清楚的问题/错误是,当我通过 ReactJS 应用程序创建一个包含名称和 X 个 Hrfile 的新 Sra 并发布 JSON(如上所示)时。这是由 Rails 接收的:

ReactJS 应用程序确实转发了例如“hrfile_ids”=>[“2”,“1”],但是 ParamsWrapper(我怀疑)不将 'hrfile_ids' 识别为属性,因此仅保存名称。

有人知道我在这里缺少什么吗?

如果您需要任何其他代码块或详细信息,请告诉我。希望您能提供帮助:)提前致谢-

编辑

感谢 Jesper,指出“sra”对象是由Rails 中的params 包装器创建的。即使我在 Sra 和 Hrfile 这两个模型之间存在关系,我可以在其中调用 @sra.hrfiles 来获取所属的 Hrfile,但我仍然无法弄清楚将 hrfile_ids 参数包装到 JSON 中。

0 投票
0 回答
31 浏览

ruby-on-rails - rails4 的任何最新的 react-router 宝石

我正在使用rails4gem react-rails,react-router 有一个 gem 是https://github.com/mariopeixoto/react-router-rails但这使用的版本太旧react-router (0.13),目前react-router-2已经启动。

那么是否有任何其他红宝石宝石支持react-router-2

0 投票
0 回答
985 浏览

ruby-on-rails - 如何使用 Webpack 和 React Rails 导入和使用 React 组件?

我正在尝试通过 NPM 使用一个名为 React-TimeAgo 的组件。我已经设法通过 NPM 安装它,并将 Webpack 与 Rails 集成以生成我的 node_modules 的 webpack 包。

当我导入一个 Javascript 库(如引导程序)但不能使用这个 React TimeAgo 组件时,这一切都很好。我认为这是我尝试从 Webpack 导入的方式。

在我的 index.js 中,我有:

然后在我看来:

但是我收到一个运行时错误,说找不到组件 TimeAgo。

我错过了什么?非常感谢任何帮助。

0 投票
2 回答
852 浏览

ruby-on-rails - react json对象作为React子无效

我正在使用 React-Rails gem 并items从 Rails 控制器访问 json 对象。

导轨控制器:

我的 ReactApp组件访问这些项目并尝试将其作为道具传递给子组件:

这个子组件看起来像这样:

我得到这个错误:

我该如何解决这个问题?有没有办法在我的 React 组件中轻松使用 JSON 对象?

现在我尝试将 JSON 对象包装在一个数组中:

0 投票
1 回答
204 浏览

javascript - 将项目添加到篮子过滤器与拼接 ReactJS Javascript

我是一个应用程序,用户可以在其中将 productItem 添加到 Basket。目前,如果用户从篮子中删除一个项目,我正在使用 .filter 从我的 basketItems 数组中删除 basketItem 对象。然后我用过滤后的项目将状态设置为这个数组。

然而问题是,一旦我删除了一个项目,然后去添加另一个项目,创建的新项目将显示为旧项目,直到页面刷新 - 可以在此处找到此应用程序的示例,并且完整的存储库已打开github。

添加项目调用如下所示:

如何确保购物篮中显示正确的商品?

0 投票
3 回答
16049 浏览

ruby-on-rails - 如何在 Rails 中使用 npm 包?

我正在尝试在我的 Ruby on Rails 应用程序中使用Ace 编辑器,其中大部分视图由 React 组件组成。我正在使用react-rails gem,我根本没有使用通量。

我找到了这个react-ace包,但是我必须使用 npm 来安装它。我已经能够让 bower 组件与 bower-rails gem 一起工作,但从来没有让 npm 包工作。有没有办法通过资产管道(通过供应商)使用它?

顺便说一句,我没有使用 browserify 或 ES6,所以我什至没有import. 到目前为止,我一直在通过资产管道做所有事情。

谢谢!