我有一个标头组件,并在我的Web应用程序中发布了容器组件。它们都是单独的,是App组件的子代。 posts容器是独立的,并且执行所有firebase请求。我需要在标题按钮(例如NEW)中显示新帖子。
问题是我没有从标题访问postContainer的任何信息。我正在使用redux,所以我可以更新redux中的状态并获取该信息,但是我需要更新postsContainer,以便它实际上使用来自redux的信息。
我不知道该怎么做。我不能重新加载整个页面,因为redux状态将被重置,所以我只需要以某种方式强制更新整个postsContainer组件。 GetPosts函数位于componentDidUpdate中,因此我需要专门触发componentDidUpdate或getPosts函数。
我现在无法创建新的父组件,只需将这些按钮作为PostsContainer组件的一部分即可。
因此,基本上,我只需要在按下组件B中的按钮之后从组件B中触发组件A中的函数或ComponentDidUpdate。如果可能,则可以通过任何方式进行。
如上所述,我正在使用Redux和ReactRouter。
感谢您的帮助。
答案 0 :(得分:1)
是的,有可能。按下组件B中的按钮后,触发Redux存储上的更新,并设置一些标志或更改属性。将组件A连接到redux,并聆听商店中的更改。使用mapStateToProps
将状态从redux商店映射到组件A中的道具。
在那之后,使用ComponentWillReceiveProps
比较this.props.changedProp
和nextProps.changedProp
,然后在发生更改时就可以开始工作了。