我对redux动作有基本的需求,但我不知道该如何解决。
这是我的场景; 我有一个如下所示的redux动作,我想在statefull组件中完成redux动作后遍历数据。
export const fetchServiceTypes = () => {
return dispatch => {
dispatch(fetchStStart());
axios.get(GAMMA_CONSTANTS.LINK_SERVICETYPES)
.then(res => {
dispatch(fetchStSuccess(res.data))
})
})
.catch(err => {
dispatch(fetchStFail(err))
})
}
}
在组件中,我按如下所示在componentWillMount函数中调用redux动作,但我认为,因为redux动作是异步工作的,所以一旦完成,我就无法遍历redux状态
componentWillMount() {
if (this.props.serviceTypes.length === 0)
this.props.onFetchServiceTypes();
this.props.serviceType.forEach(x => {
// TO DO
})
}
有人解决这个问题吗? 谢谢
答案 0 :(得分:1)
componentDidMount
仅在呈现组件之前触发一次,它并不关心您的数据是否存在。您可以改为监听状态的变化。 This article解释了新生命周期方法的工作原理。
侧面说明:如果您只想显示数据,则实际上可以直接在html中对其进行循环,并且每当状态更新时,该数据都将被更新。