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