Reactjs 等待componentDidMount中的redux道具
我想从Reactjs 等待componentDidMount中的redux道具,reactjs,redux,jwt,Reactjs,Redux,Jwt,我想从componentDidMount中的API端点加载一些东西,但需要将redux存储中的其他东西传递给它 问题是,似乎componentDidMount在从redux填充道具之前被触发,所以jwt auth令牌还没有处于redux状态,我得到了一个401错误 我如何让代码等待加载redux状态,然后调用函数,或者让它每隔500毫秒循环一次,直到确定props 如果除了componentDidMount之外还有其他地方,我应该把它放在这里,我愿意接受建议。您可以等待auth令牌获得值。 例如
componentDidMount
中的API端点加载一些东西,但需要将redux存储中的其他东西传递给它
问题是,似乎componentDidMount在从redux填充道具之前被触发,所以jwt auth令牌还没有处于redux状态,我得到了一个401错误
我如何让代码等待加载redux状态,然后调用函数,或者让它每隔500毫秒循环一次,直到确定props
如果除了
componentDidMount
之外还有其他地方,我应该把它放在这里,我愿意接受建议。您可以等待auth令牌获得值。
例如,您可以显示进度指示器,直到它得到一个值。如果它接收到一个值,则使用componentDidMount显示您的组件
render() {
const {authToken} = this.props;
return (
<div>
{!authToken && ProgressIndicator}
{authToken && ComponentWithApiFetch}
</div>
)
}
render(){
const{authToken}=this.props;
返回(
{!authToken&&ProgressIndicator}
{authToken&&ComponentWithApiFetch}
)
}
您使用组件将接收道具
生命周期方法来跟踪传入道具
componentWillReceiveProps(nextProps){
if(this.props.auth.token !== nextProps.auth.token){
//make a api call here
}
}
因此,最初令牌将是未定义的,因此您可以使用componentDidMount检查令牌是否未定义并进行api调用。componentDidMount(){如果(this.props.auth!=未定义)this.props.getDetails()}不建议在componentWillReceiveProps中获取数据的可能重复项。事实上,不再建议使用此生命周期方法。如果不推荐使用componentWillReceiveProps,请参阅: