前景说明:
React子组件通过componentDidMount()生命周期函数获取父组件中props失败
报错原因:
父组件在渲染时异步加载了数据,并将其通过 props 传递给子组件,那么在子组件 componentDidMount()
函数中访问这些 props 可能会发生延迟。因为在子组件挂载时,异步请求可能还没有完成,父组件传递的 props 还没有准备好。
解决办法:
componentDidUpdate(prevProps, prevState) {
if (prevProps.parentProp !== this.props.parentProp) {//这里的parentProp为父组件props中的参数名
//方法调用 实现逻辑
}
}
使用 componentDidUpdate()
函数检查父组件传递的 props 是否发生了变化,这样可以确保在子组件挂载时,父组件传递的 props 已经准备好,并且可以及时更新子组件中的数据。