我想从componentDidMount
的API端点中加载某些内容,但这需要将redux存储中的其他内容传递到其中。
事实是,似乎在从Redux填充道具之前会触发componentDidMount,因此jwt auth令牌尚未处于redux状态,并且我收到401错误。
如何获取代码以等待redux状态被加载,然后调用该函数,或者让它每循环一次(比如说500毫秒),直到识别出道具为止?
如果除了componentDidMount
以外还有其他地方,我应该提出建议。
答案 0 :(得分:3)
您使用componentWillReceiveProps
生命周期方法来跟踪传入的道具。
componentWillReceiveProps(nextProps){
if(this.props.auth.token !== nextProps.auth.token){
//make a api call here
}
}
答案 1 :(得分:1)
您可以等待auth令牌获得价值。 例如,您可以显示进度指示器,直到获得值为止。如果它收到一个值,则显示带有componentDidMount的组件。
render() {
const {authToken} = this.props;
return (
<div>
{!authToken && ProgressIndicator}
{authToken && ComponentWithApiFetch}
</div>
)
}