在我的应用程序中,用户有多个..让我们说'狗'。当前选中的狗出现在标题中,并且可以通过标题的下拉菜单进行更改。在选择他们的新狗后,它在后端将其标记为primary: true
,并且我将相应的标头UI更新。从那时起,所有到后端的请求都会返回primary
狗的结果。React:如何重新安装一个兄弟组件重新运行componentDidMount?
我有一个Layout.jsx
组件,如下所示:
<Header />
<div>
{this.props.children}
</div>
在this.props.children
,我渲染多个不同的资源索引页,即一个子组件的例子可能是TreatsContainer
其中一个网络请求在componentDidMount
到/treats
之间,结果在我的布局中呈现。
我面临的问题是,当用户在标头组件中更改他们的狗时,我想让其他组件重新运行它们在componentDidMount
中进行的相同网络请求,以便新选择的狗显示数据。我在应用程序中的几个地方实现了Redux,但我不想将所有数据存储在全局状态树中,因为用户可以创建多少资源没有限制。我的意思是,我不希望所有数据来自/treats
,/toys
,/foods
等等。处理这种情况的好方法是什么?
当'Header'中的选择改变时,'Layout'中的道具是否改变?如果不是,他们可能应该。然后,您可以使用相同的网络调用实现'componentWillReceiveProps'(可能在* both *方法之外定义,因此不必重复)。我认为试图卸载/重新安装是一个隐藏实际问题的XY问题。你可以为头选择一个单独的redux状态元素,并将'Layout'连接到它。 –