我想创建一个加载屏幕,并在未定义/定义值时将其设置为true或false。我的错误是:“未定义不是对象(正在评估navigation.state.params.changeLoadingState)”。 console.log(JSON.stringify(navigation.state.params))
的输出为{"isLoadingState":false,"usernameValue":"MyUsername"}
这是我的代码:
设置状态以及setParams
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);
}
在构造函数内部的this.state=
中,isLoading设置为false。错误出现在else语句中的代码行中。
undefined is not an object(evaluating navigation.state.params.changeLoadingState)
但是,如果我删除else语句,则if语句不起作用,它不会更改任何内容。
有人知道我该如何解决吗?我不明白。
感谢您的帮助,感谢您的时间