【发布时间】:2017-03-27 10:25:33
【问题描述】:
直到现在,我一直认为 React 生命周期是这样工作的:
<ComponentA>
<ComponentB />
</ComponentA>
-
组件A(组件WillMount)
1.1。组件B(组件WillMount)
1.2:组件B(componentDidMount)
ComponentA (componentDidMount)
因此,父级总是必须等待子级被渲染才能完成 DidMount 状态。
但是,我发现在我拥有的复杂组件上,这不会发生。
它调用:
组件A (componentWillMount)
ComponentA (componentDidMount)
ComponentB (componentWillMount)
ComponentB (componentDidMount)
这真的会发生吗? (或者我可能做错了什么)
如果 ComponentA 渲染而没有渲染它的子级 (ComponentB),它应该在 DOM 中是什么?
【问题讨论】:
-
你能在 jsfiddle/codepen 中重现这个吗?
-
别这么认为,它有很多代码。这不是一个简单的示例代码,这就是为什么我做了通用问题,以确保这是否是预期的行为。对不起:(
-
从技术上讲,生命周期方法仅保证您的特定组件已安装。它没有对它的孩子做出任何承诺。依赖此顺序通常表明您正在打破组件的封装边界。例如,如果您的组件渲染另一个组件,该组件可能会选择在加载数据时延迟渲染它的子组件(即使它们是从上面传递的)。
标签: reactjs