【发布时间】:2017-02-19 19:34:39
【问题描述】:
我读到 componentDidMount 在初始渲染中只被调用一次,但我看到它被多次渲染。
看来我创建了一个递归循环。
- componentDidMount 调度操作以获取数据
- 在接收到数据后,它会触发成功操作以将数据存储在 redux 状态。
- 父 React 组件已连接到 redux 存储,并且在上述步骤中刚刚更改的条目具有
mapStateToProps - 父组件渲染子组件(通过变量以编程方式选择)
- 子组件的 componentDidMount 再次被调用
- 它调度操作以获取数据
我认为这就是正在发生的事情。我可能错了。
如何停止循环?
这是以编程方式呈现子组件的代码。
function renderSubviews({viewConfigs, viewConfig, getSubviewData}) {
return viewConfig.subviewConfigs.map((subviewConfig, index) => {
let Subview = viewConfigRegistry[subviewConfig.constructor.configName]
let subviewData = getSubviewData(subviewConfig)
const key = shortid.generate()
const subviewLayout = Object.assign({}, subviewConfig.layout, {key: key})
return (
<div
key={key}
data-grid={subviewLayout}
>
<Subview
{...subviewData}
/>
</div>
)
})
}
【问题讨论】:
标签: reactjs redux react-redux