现在,组件只能知道全局state
已更改,但无法确定实际更改了哪个状态。这是我的情景:
Component Root --- very deep --- Component Leaf
Component Leaf
在组件层次结构中非常深,它会触发操作,更改全局状态,Component Root
想要更改某些内部状态以响应此操作。有没有办法做到这一点?
答案 0 :(得分:1)
从概念上讲,您会发现这不是正确的思考方式:
Component Root
想要更改一些内部状态以响应此操作
使用Redux和React时,从商店派生的任何内容都应该是 props 而不是状态。
首先,将上述状态转换为道具。
其次,使用connect
中的react-redux
函数设置这些道具。
您可能在Redux文档中看到过类似的内容:
// Take the store state and return the props for your root component
function mapStateToProps(state) {
return state;
}
export default connect(mapStateToProps)(Root);
如何定义mapStateToProps函数由您决定。您可以选择使用全部或部分州。
最后,将层次结构中的相关道具传递给Leaf
节点。