Обновление реквизита, полученного из редуктора в компоненте - PullRequest
0 голосов
/ 03 января 2019

Я получаю новые данные в моем редукторе и обращаюсь к состоянию в компоненте через реквизиты, но реквизиты не обновляются при обновлении состояния в редукторе.Мне нужно как-то проверить, когда реквизиты обновляются, componentDidMount?

Я пытался получить доступ к состоянию в компоненте через this.props.list.В редукторе состояние обновляется при добавлении нового элемента в список через веб-сокет

// Reducer
case types.ADD_LIST:
return {
  lists: action.lists
}

// Somewhere in My component
{this.props.lists ? this.props.lists.map((list, index) => (
   <li key={index}>list</li>
)}

Ответы [ 2 ]

0 голосов
/ 03 января 2019

если вы используете функцию соединения, вы должны передать состояние вашему компоненту. попробуй вот так,

const mapStateToProps = function(state) {
  return {
    lists: state.lists
  }
}

export default connect(mapStateToProps)(yourComponent);
0 голосов
/ 03 января 2019

Состояние не будет автоматически отображаться на реквизиты вашего компонента. Вы должны использовать response-redux для сопоставления состояния Redux с вашими реквизитами. В частности, используя метод connect в вашем компоненте.

пример:

const mapStateToProps = state => {
  return {
    lists: state.lists
  };
};

export default connect(mapStateToProps)(ComponentName);

не забудьте обернуть компонент приложения внутри провайдера и передать ему свой магазин:

  <Provider store={createStore(reducers)}>
    <App />
  </Provider>

С документацией можно ознакомиться здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...