class Wrap extends Component{
constructor(props) {
super(props);
this.state={
index: 0,
selectedIndex: 0
};
}
getSelectedIndex(index){
this.setState({selectedIndex: index});
}
switch(index) {
case 0:
<Apple selectedIndex={this.getSelectedIndex.bind(this)}/>;
case 1:
<Orange selectedIndex={this.state.selectedIndex}/>;
case 2:
<Pumpkin selectedIndex={this.state.selectedIndex}/>;
}
}
不建议在反应状态下使用selectedIndex。应该将其移至redux存储。当仅在父子组件中需要时,为什么不是最佳实践呢?
答案 0 :(得分:2)
根据official docs,可以使用本地状态,也可以将其全部放入redux存储中。它取决于您和您项目的需求。
这里要考虑的关键事项:
用于确定应使用哪种数据的一些通用经验法则 放入Redux:
应用程序的其他部分是否关心此数据?
您是否需要能够基于此创建更多的派生数据 原始数据?
是否使用相同的数据来驱动多个组件?
您是否有能力将这种状态恢复到给定的价值? 时间点(即时间旅行调试)?
是否要缓存数据(即,使用已存在状态的数据) 而不是重新请求)?
答案 1 :(得分:0)
最好将应用程序状态放在一个位置,但是通常很难避免在某些组件中具有局部状态。