从另一个组件反应更新组件

时间:2018-10-03 11:54:37

标签: javascript reactjs redux react-router components

我有一个标头组件,并在我的Web应用程序中发布了容器组件。它们都是单独的,是App组件的子代。 posts容器是独立的,并且执行所有firebase请求。我需要在标题按钮(例如NEW)中显示新帖子。

问题是我没有从标题访问postContainer的任何信息。我正在使用redux,所以我可以更新redux中的状态并获取该信息,但是我需要更新postsContainer,以便它实际上使用来自redux的信息。

我不知道该怎么做。我不能重新加载整个页面,因为redux状态将被重置,所以我只需要以某种方式强制更新整个postsContainer组件。 GetPosts函数位于componentDidUpdate中,因此我需要专门触发componentDidUpdate或getPosts函数。

我现在无法创建新的父组件,只需将这些按钮作为PostsContainer组件的一部分即可。

因此,基本上,我只需要在按下组件B中的按钮之后从组件B中触发组件A中的函数或ComponentDidUpdate。如果可能,则可以通过任何方式进行。

如上所述,我正在使用Redux和ReactRouter。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

是的,有可能。按下组件B中的按钮后,触发Redux存储上的更新,并设置一些标志或更改属性。将组件A连接到redux,并聆听商店中的更改。使用mapStateToProps将状态从redux商店映射到组件A中的道具。

在那之后,使用ComponentWillReceiveProps比较this.props.changedPropnextProps.changedProp,然后在发生更改时就可以开始工作了。