Redux操作完成后如何遍历Redux状态数据

时间:2018-11-16 07:08:53

标签: reactjs react-redux

我对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
        })
    }

有人解决这个问题吗? 谢谢

1 个答案:

答案 0 :(得分:1)

componentDidMount仅在呈现组件之前触发一次,它并不关心您的数据是否存在。您可以改为监听状态的变化。 This article解释了新生命周期方法的工作原理。

侧面说明:如果您只想显示数据,则实际上可以直接在html中对其进行循环,并且每当状态更新时,该数据都将被更新。