Редуктор не обновляет состояние - PullRequest
0 голосов
/ 18 мая 2019

У меня есть простой поток в моем приложении.После завершения запроса я вызываю действие с полезной нагрузкой:

export const setVoteFlagCurrentPoll = () => dispatch => {
  dispatch({
    type: SET_VOTE_FLAG_CURRENT_POLL,
    payload: true
  })
}

Затем в редукторе я меняю одну переменную в объекте опроса, который выглядит следующим образом:

{
  idsurvey: 10, 
  topic: "random poll question", 
  answers: Array(4), 
  voted: false
}

Сам редуктор:

case SET_VOTE_FLAG_CURRENT_POLL:
      return {...state, pollData: {...state.pollData, voted: action.payload}};

Моя проблема в том, что переменная voted не меняет своего значения.Это все тот же, который является «ложным».Интересно, что я могу просто зарегистрировать этот recuder как: console.log({...state, pollData: {...state.pollData, voted: action.payload}});, и он работает .. его регистрация с проголосованием как true.Почему это происходит?

1 Ответ

0 голосов
/ 18 мая 2019

Хорошо, я понял это. Кажется, что функция mapStateToProps была написана плохо ..

до (не работает):

const = ({user}) => ({user}); // its returning whole user reducer

после (работает сейчас):

const mapStateToProps = state => {
  return {
    user: state.user //same as above (I didnt want to change the code in other components..)
    pollData: state.user.pollData //pulling pollData directly
  }
}

Надеюсь, это поможет.

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