ComponentWillReceiveProps не срабатывает, хотя состояние явно изменилось в редукторе

Я знаю, что на этот же вопрос по SO есть много ответов, однако я их прочитал, и, похоже, ни один из них не решает проблему, которую я вижу. действительно нужна чья-то помощь в этом.

сценарий: у нас есть существующее приложение React Native (v0.42.3), которое есть в App Store, и все было хорошо. Сегодня из-за ошибочной сторонней библиотеки нам пришлось удалить node_modules и перестроить. Это было сделано, и никаких проблем. Приложение запускается нормально. Однако теперь по какой-то причине процесс входа в систему прерван, и это «кажется» из-за Redux. Это простой процесс входа в систему. Надеюсь, вот все подробности:

пользователь нажимает логин -> создатель действия вызова -> успех -> редуктор вызова -> состояние обновления, которое вызывает mapStateToProps (состояние)

проблема, которую я пока не могу решить - это: 1) mapStateToProps запускается, и вы можете видеть, что необходимое свойство (displayLoginModal) изменилось с true на false

2) componentWillReceiveProps НЕ запускается, что мешает работе приложения

Создатель действий

 ..auth worked fine, then call..

 dispatch({
        type: LOGIN_USER_SUCCESS,
        payload: { user: userInfo },
        greeting: isNewUser ? "welcome" : "hi",
        isLoggedIn: true,
        waitingForLoginCompletion: false
      });

 dispatch({ type: SHOW_LOGIN_MODAL, display: false });

Редуктор

case SHOW_LOGIN_MODAL:
  return {
    ...state,
    displayLoginModal: action.display
  };

  case LOGIN_USER_SUCCESS:
   return {
     ...state,
     user: action.payload,
     greeting: action.greeting,
     error: "",
     loginUserError: "",
     faceBookLoading: false,
     googleLoading: false
  };

Компонент приема / прослушивания (LoginView)

я использую декоратор @connect

Вот функция mapStateToProps:

function mapStateToProps(state) {
  console.info(state) <== **IMPORTANT. this IS showing that the prop has changed
  const {
    email,
    password,
    error,
    ... etc...
    displayLoginModal   <== this is the prop that IS changing (from    true, to false)
  } = state.auth;

  return {
    ..snip.. other props etc...
    displayLoginModal,    <== returning it here
    isConnectedToFirebase
  };
}

....
@connect(
mapStateToProps,
{
    updateTermsOfUseAndPrivacy,
    emailChanged,
    passwordChanged,
    errorMessageChanged,
    loginUserWithEmail,
    loginUserWithFacebook,
    facebookLogin,
    googleLogin,
    loginUserWithGoogle,
    resetUserPassword,
    setTermsOfUseAndPrivacy,
    logout,
    resetPasswordComplete
  }
)
export default class LoginView extends Component {
 ... etc

Итак, еще раз - даже подумал, что mapStateToProps срабатывает и правильно отображает изменение значения свойств - по какой-то странной неизвестной мне причине componentWillReceiveProps НЕ срабатывает.

Почему ? На данный момент это серьезный блокировщик для нас, поэтому очень признателен за помощь и совет. Надеюсь, это что-то очевидное, что я пропустил.

Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
0
0
21
1

Ответы 1

хорошо - это отсортировано. проблема здесь НИЧЕГО не имела отношения к Redux. Это было из-за пропавшего маршрута. Не то чтобы какие-либо загадочные / несуществующие сообщения об ошибках имели к этому какое-либо отношение. Я беру на себя ответственность, но скажу, что официально больше не являюсь поклонником React Native. смерть от тысячи порезов.

Другие вопросы по теме