reactjs - 如何在 redux 操作完成后循环 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
})
}
任何人如何解决这个问题?谢谢
解决方案
componentDidMount
仅在组件渲染之前触发一次,它不关心您的数据是否存在。您可以改为监听状态的变化。本文解释了新的生命周期方法是如何工作的。
旁注:如果您只想显示数据,您实际上可以直接在 html 中对其进行循环,并且只要状态更新,它就会更新。
推荐阅读
- python - 如何读取类似于json格式的文本文件
- c# - 使用 C# 使用 DataGridView 中的值更新数据库
- c# - 如何通过代码测试某些条件,然后验证或无效并显示错误消息?
- c# - 如何在路径中插入用户名信息?
- python - pytorch 使用 PyCharm 调试超时
- sql - SQL/PLSQL 查询以获取开始日期和结束日期之间的差异总和
- visual-studio-code - 如何配置 Prettier 以将属性与 jsx 元素保持在同一行?
- c# - 在 C# 中将类序列化为 xml 时处理 null
- node.js - 如何在 JWT 中实现权限
- android - 如何逐行查看类测试覆盖率?