为什么在应用程序中使用Redux时不建议使用React状态(不认为是最佳实践)

时间:2018-09-29 03:32:21

标签: reactjs react-native redux react-redux redux-form

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存储。当仅在父子组件中需要时,为什么不是最佳实践呢?

2 个答案:

答案 0 :(得分:2)

根据official docs,可以使用本地状态,也可以将其全部放入redux存储中。它取决于您和您项目的需求。

这里要考虑的关键事项:

  

用于确定应使用哪种数据的一些通用经验法则   放入Redux:

     
      
  • 应用程序的其他部分是否关心此数据?

  •   
  • 您是否需要能够基于此创建更多的派生数据   原始数据?

  •   
  • 是否使用相同的数据来驱动多个组件?

  •   
  • 您是否有能力将这种状态恢复到给定的价值?   时间点(即时间旅行调试)?

  •   
  • 是否要缓存数据(即,使用已存在状态的数据)   而不是重新请求)?

  •   

答案 1 :(得分:0)

最好将应用程序状态放在一个位置,但是通常很难避免在某些组件中具有局部状态。