【发布时间】:2018-06-26 10:36:16
【问题描述】:
我是一名 React 新手,正在尝试将 React 集成到 Rails 站点中。我在页面/html 的最顶部有一个CommentForm 组件,在同一页面的底部有一个Comments 组件。目前两者都是通过 React-On-Rails 的react_component 方法渲染的。
问题是,在CommentForm 中提交表单后,我想更改Comments 组件中的this.state.comments。我很熟悉确保状态冒泡到一个共同的父组件的想法,但是目前,这两个组件没有共同的父组件(或根本没有任何父组件)。
那么,我已经学习了 2 天的 React 并且可能非常困惑,那么,克服此类问题的最佳实践是什么?我看到的选项:
- 将整个 rails 视图重写为单个父组件,其中两个组件作为其下的子组件。这听起来并不有趣 - 页面上的两个组件之间有很多 rails helpers 生成了很多 html
- 使用 Redux 创建一个在两个组件之间共享的存储 (???)
- 以某种方式创建一个父组件,同时仍然在页面的不同部分呈现其他两个组件(?)
- 从
CommentForm或某些共享资源(例如:window范围)内访问Comment的状态属性,据我有限的理解,这不是 React 方式
我猜这是一个常见问题,但我不确定解决它的一般智慧是什么。任何想法表示赞赏。
【问题讨论】:
标签: ruby-on-rails reactjs react-redux react-on-rails