mapStateToProps не вызывается после изменения состояния в Reducer - PullRequest
0 голосов
/ 13 марта 2019

У меня есть простая форма регистрации.у меня есть файлы signup.js, authActions.js и signUpReducer.js.Когда действие выполняется, создатель действий отправляет действие, а редуктор получает объект действия, а также обновляет состояние, но реквизиты компонента не обновляются должным образом.

export default (state = INITIAL_STATE, action) =>
{ 
    switch(action.type)
    {
        case USER_PHONECHANGE: 
            return { ...state, phone: action.payload };  

        case USER_EMAILCHANGE:  
            return { ...state , email : action.payload };  

        case USER_FIRSTNAMECHANGE:
            return { ...state, fName: action.payload };

        case USER_MIDDLENAMECHANGE:
            return { ...state, mName: action.payload };

        case USER_LASTNAMECHANGE:
            return { ...state, lName: action.payload };

        case USER_GENDERCHANGE:
            return { ...state, gender: action.payload };

        case USER_SIGNUP_SUCCESS:
            return state;

        case USER_SIGNUP_FAIL:
            return state;

        default: 
            return state;
    }
};

const mapStateToProps = state =>
{   
    console.log("hited");
    return { userData : state.signUp };
       
};

const mapDispatchToProps =  {UserPhoneNoChanged, UserEmailChanged, UserFirstNameChanged, UserMiddleNameChanged, UserLastNameChanged, UserGenderChanged,UserSignUp}

export default connect(mapStateToProps, mapDispatchToProps)(SignUp);    

1 Ответ

0 голосов
/ 14 марта 2019

mapStateToProps не будет вызываться при отправке USER_SIGNUP_SUCCESS или USER_SIGNUP_FAIL, поскольку в этих случаях вы не изменяете состояние.Если вам действительно нужно вызвать mapStateToProps() после того, как эти действия достигнут редуктора, вам нужно изменить состояние перед его возвратом:

export default (state = INITIAL_STATE, action) => { 

  switch(action.type) {

    case USER_SIGNUP_SUCCESS:
      return {...state}; // now the state has another reference 

    case USER_SIGNUP_FAIL:
      return {...state}; // now the state has another reference 

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