Почему использование режима реакции не рекомендуется (не считается лучшей практикой) при использовании в приложении избыточности - PullRequest
0 голосов
/ 29 сентября 2018
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 в состоянии реакции не рекомендуется.Следует перенести в магазин редуксов.Почему не рекомендуется, когда это требуется только в компонентах parent-child.

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Лучше иметь состояние приложения в одном месте, но часто очень трудно избежать наличия локального состояния в некоторых компонентах.

0 голосов
/ 29 сентября 2018

Согласно официальным документам , использование локального состояния - это нормально, или вы можете положить все это в хранилище избыточностей.Это зависит от вас и потребностей вашего проекта.

Ключевые моменты, которые следует учитывать здесь:

Некоторые общие правила для определения того, какие данные следует помещать в Redux:

  • Другие части приложения заботятся об этих данных?

  • Нужно ли вам создавать дополнительные производные данные на основе этих исходных данных?

  • Используются ли одни и те же данные для управления несколькими компонентами?

  • Есть ли у вас значение для возможности восстановить это состояние в определенный момент времени (т. Е. Отладка во времени)?

  • Вы хотите кэшировать данные (т. Е. Использовать то, что находится в состоянии, если оно уже есть, вместо повторного запроса)?

...