问题标签 [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 投票
1 回答
481 浏览

reactjs - ReactDnD:“不变违规:addComponentAsRefTo”错误

亲爱的 StackOverflow 的人们,

我正在尝试在 React-Rails 应用程序中实现拖放功能。但是,只要将 DragDropContext 添加到顶级组件,我就会在浏览器控制台中看到此错误:

'react.self-0f0e88a....js?body=1:1087 未捕获错误:不变违规:addComponentAsRefTo(...):只有 ReactOwner 可以有 refs。您可能正在向未在组件render方法中创建的组件添加 ref,或者您加载了多个 React 副本

这是我目前拥有的应用程序的唯一代码:

添加这一行代码会导致我们所有的 PhantomJS 集成测试失败。任何帮助,将不胜感激。谢谢!

编辑:根据要求,这里是我们渲染 App 的 index.html.erb。

0 投票
2 回答
812 浏览

ruby-on-rails - 如何避免 reactjs 中的 key/id 问题并使道具从父母传递给孩子?

尝试将父数据传递给子组件时,我一直碰壁。

我的观点:

我的Items组件进行 ajax 调用、设置状态并呈现Item. 忽略传递给映射函数key={this.props.id}Item实例,以便组件 html 呈现到页面。但是添加密钥,我得到一个控制台错误:Uncaught TypeError: Cannot read property 'id' of undefined

这是“项目”:

我的 item.js.jsx 组件只是格式化每个Item

React 开发工具扩展显示了 Items 中的 props 和 state 数据。然而,孩子们是空的。

在此处输入图像描述

我知道这一点,但我正在使用this.props.id. 我不确定我错过了什么?

0 投票
1 回答
1458 浏览

ruby-on-rails-4 - React-Rails:使用带有翻译 I18n 的组件

我已添加到我的项目react-railsgem 中,我想将其用于已翻译的组件。

我无法放入预编译的资产erb模板,但我仍在尝试创建组件,使它们在所有项目中可用,然后在某些部分中使用它们并进行一些翻译。

工作场景

期望的场景(不工作)

我想这个问题与我的组件定义的范围有关,但我不知道如何使组件可用于任何部分。

先感谢您

编辑

为了使翻译可用,我找到了gem I18n-js. 安装后,我可以轻松运行 rake 任务来创建我的config/locales/*翻译的 js 版本

0 投票
0 回答
1056 浏览

reactjs - React 对象作为 React 子对象无效,请使用 React 附加组件中的 createFragment(object) 包装对象

我正在尝试根据反应中的条件向元素呈现一些属性,如下所示:

但是根据条件得到以下错误,

Uncaught Invariant Violation:对象作为 React 子对象无效(发现:对象与键 {onClick})。如果您打算渲染一组子对象,请改用数组或使用 React 附加组件中的 createFragment(object) 包装对象。检查Constructor.

或者

Uncaught Invariant Violation:对象作为 React 子对象无效(发现:对象与键 {data-toggle, data-placement, title})。如果您打算渲染一组子对象,请改用数组或使用 React 附加组件中的 createFragment(object) 包装对象。检查Constructor.

以下代码虽然有效,

此外,我不确定为什么我不能在 if/for 中渲染多个元素。只允许一个元素,如果我渲染多个元素而不是仅最后一个元素在 HTML 中呈现

0 投票
0 回答
1147 浏览

javascript - 将 webpack 与 Rails 资产管道一起使用

我正在使用带有导轨和链轮的 webpack。React 是通过 gem react-rails 添加的。我不断收到错误

所以它仍然从我的问候文件app/assets/javascripts/components/main.jsxgreet.jsx读取的事实对我来说似乎是一个问题,据我对 webpack 的理解是你希望它从导出的bundle.js 文件。

我的 Rails 视图如下所示: app/views/home/index.html.erb

应用程序/资产/javascripts/components/main.jsx

应用程序/资产/javascripts/components/greet.jsx

我的 Webpack 文件如下所示:webpack.config.js

还有我的app/assets/javacsripts/application.js

如果我删除导入和导出调用它工作正常,但我正在遵循的教程使用它们。当我删除组件目录并且只需要bundle.js文件时,我从 react-rails 收到错误消息。

我不知道如何识别调用导入和导出。我知道这与 ES6 有关,但我认为 webpack 应该可以解决这个问题。

greet.jsx、main.jsx 和 bundle.js 都在我浏览器的网络选项卡中被调用。

0 投票
0 回答
49 浏览

ruby-on-rails - 当按下搜索按钮时,从后端(rails 4)中使用 ajax 'get' 调用的表单获取用户输入

所以,我有一个看起来像这样的 React-Component (search_alerts.es6.jsx)

负责调用get方法的ajax调用看起来像这样

在我的 routes.rb 中,我正在这样做

在我的 alerts_controller

对于搜索,我在 alert.rb 中执行此操作

现在,如果我在 url 中传递查询,就像这样,

例如,它返回所有邮政编码从 117 开始的 json 警报,并且反应组件正在获取它并正确显示它。我的问题是,当用户在搜索表单中输入关键字时,如何让搜索工作?我已经尝试过堆栈溢出的其他示例,它没有用,我知道我错过了一些东西,但不知道是什么。谢谢!

0 投票
2 回答
4508 浏览

ruby-on-rails - 在任何来源中都找不到 json-1.8.1

我正在使用 react-rails 做一个项目,但是当我运行时

我明白了

具体来说,这是整个错误

在stackoverflow上有很多关于这个的帖子,并且尝试了大多数“解决方案”,但似乎没有一个对我有用,我也跑了

它说我有 json gem via

我试图停止春天,更新宝石和捆绑器。我也跑过

无济于事,仍然收到此错误,任何输入将不胜感激。

0 投票
0 回答
204 浏览

ruby-on-rails - React-rails- Invariant Violation: traverseParentPath(...): Cannot traverse from and to the same ID Error in setState

所以基本上我的错误来自 this.setState ,请帮助谢谢。只有当我与 Rails 集成时才会出现遍历路径错误。它与正常反应完美配合。使用 react-rails 时会发生此错误

0 投票
0 回答
216 浏览

reactjs - 在 Rails 中使用 reactJS 进行选择的预加载选项

我正在尝试通过使用 React 动态加载选项来进行选择。

我的表单组件:

用户选项组件:

当我尝试该页面时,javascript会中断(不加载任何内容)并出现错误

当试图在componentWillMount回调中加载时,我得到了同样的错误 +

Uncaught TypeError: Cannot read property '_currentElement' of null

我正在使用react-rails宝石。

奇怪的是,当我在成功回调中调试时,手动调用 setState 然后检查connections它们是否已更新,但Uncaught TypeError: Cannot read property '_currentElement' of null无论如何我都得到了

任何帮助将不胜感激。我是 React 的新手,所以这可能是微不足道的。

0 投票
1 回答
455 浏览

ruby - 单击不使用反应组件+ capypara

我有一个反应组件,当我点击一个图标时,状态会改变,然后我输入一个输入而不是图标。

当我尝试在我的测试中模拟它时,使用 capybara 组件不会改变。

由于水豚,点击是否有可能在组件上不起作用?或者只是因为它是一个反应组件而不起作用?

零件:

测试: