关于生命周期方法和渲染反应?

时间:2018-08-23 13:43:43

标签: javascript reactjs

我的问题是关于生命周期方法的反应,现在我有以下情况: Ajax在父组件的 componentDidMount 中获取了一些数据,然后将该数据作为道具传递给子组件,现在我们在子组件中,因此我们可以实现不同的生命周期方法,

componentDidMount :无法看到道具的真实值,例如记录日期,它会返回空数组而不是所需的数组

componentWillMount :相同。

componentWillReceiveProps :如果不使用 nextProps

,则相同

componentDidUpdate :记录数据将返回以prop形式传递的所需数据

渲染:返回所需数据

所以我应该总是被迫在componentDidUpdate或render中调用我的数据吗?,有没有一种方法可以在没有redux的情况下进行管理?

1 个答案:

答案 0 :(得分:1)

您孩子的componentWillMountcomponentDidMount可能仅收到一个空数组(我认为这是默认值),因为在返回API结果之前,例如,实例化了Child组件。 <Child result={result} />,而不是result.length > 0 && <Child result={result} />。挂载只发生一次,然后每次componentDidUpdate发生一次道具更改。

假设您只是显示向下传递的数据,那么在渲染中处理它是完全可以接受的。否则,如果您要执行其他副作用,则请在父组件(段落上方)中检查其完整性,此时您应该能够在子项componentDidMount中看到完整的值。或者,您可以按照建议在孩子的componentDidUpdate中执行完整性检查,然后在那里处理。