加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 反应新手:在未链接的组件之间共享状态

发布时间:2020-12-16 19:11:35 所属栏目:百科 来源:网络整理
导读:我是一个React新手试图将React集成到Rails站点.我在页面/ html的最顶部有一个CommentForm组件,在同一页面的底部有一个Comments组件.目前,两者都是通过React-On-Rails的react_component方法呈现的. 问题是,在CommentForm中提交表单后,我想在Comments组件中更
我是一个React新手试图将React集成到Rails站点.我在页面/ html的最顶部有一个CommentForm组件,在同一页面的底部有一个Comments组件.目前,两者都是通过React-On-Rails的react_component方法呈现的.

问题是,在CommentForm中提交表单后,我想在Comments组件中更改this.state.comments.我很熟悉确保状态冒泡到共同的父组件的想法,但是目前,这两个组件没有共同的父组件(或任何父组件).

所以,由于免责声明我已经学习React 2天而且很可能很困惑,克服这类问题的最佳做法是什么?我看到的选项:

>将整个rails视图重写为单个父组件,其中两个组件为下面的子组件.这听起来并不好玩 – 页面上两个组件之间有很多rails帮助程序生成了很多html
>使用Redux创建一个在两个组件之间共享的存储(???)
>以某种方式创建父组件,同时仍然在页面的不同部分呈现其他两个组件(?)
>从CommentForm或某些共享资源(例如:窗口范围)中访问Comment的状态属性,根据我的有限理解,它不是React Way

我猜这是一个常见的问题,但我不确定解决它的一般智慧是什么.任何想法都赞赏.

解决方法

第一种选择是仅采用反应方式(没有外部库).如果您的项目不是那么大,可能是一个解决方案.

绝对不是第三种和第四种选择.

就你所说,使用Redux似乎是最简单的解决方案.

Comments组件应该绘制全局存储中的所有注释,CommentForm应该将注释添加到存储(并且可能还发送一个AJAX请求以保存服务器端).

然后,这些组件将共享相同的提供程序并可以访问同一个存储.

我建议你看Dan’s Course

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读