Undefined не является объектом внутри navigationOptions - PullRequest
0 голосов
/ 04 октября 2019

Я хочу сделать загрузочный экран и установить его в значение true или false, если значение не определено / не определено. Моя ошибка: «undefined не является объектом (оценивает navigation.state.params.changeLoadingState)». Вывод console.log(JSON.stringify(navigation.state.params)) равен {"isLoadingState":false,"usernameValue":"MyUsername"}

Вот мой код:

Установка состояния, а также установка параметров

componentDidMount = () => {
  const changeLoadingState = (isLoadingState) => this.setState({isLoadingState});

  const isLoadingState = this.state.isLoading;

  this.props.navigation.setParams({
    isLoadingState : false,
    changeLoadingState
  });
}

NavigationOptions

const { params = {} } = navigation.state;

if (typeof params.usernameValue !== "undefined") {
  navigation.state.params.changeLoadingState(false);
} else {
  navigation.state.params.changeLoadingState(true);
}

isLoading имеет значение false в this.state= внутри конструктора. Ошибка находится в строке кода внутри оператора else.

undefined is not an object(evaluating navigation.state.params.changeLoadingState)

Но если я удаляю оператор else, оператор if не работает, он ничего не меняет.

Кто-нибудь знает, как я могу это исправить? Я не понимаю.

Помощь приветствуется, спасибо за ваше время

...