我读到componentDidMount
只在初始渲染时被调用一次,但我看到它被渲染了多次.
我似乎创建了一个递归循环.
- componentDidMount分派操作以获取数据
- 收到数据后,它会启动成功操作以将数据存储在redux状态.
- 父react组件连接到redux store,在上面的步骤中刚刚更改的条目有
mapStateToProps
个 - 父级渲染子组件(通过变量以编程方式 Select )
- 再次调用子组件的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>
)
})
}