如果 prop 未定义,我想在 componentDidUpdate 中执行一些操作,但是,我不能,因为我刚刚收到错误Cannot read property 'serial' of undefined。有办法解决这个问题吗?这就是我累的,但它不起作用 - 我收到错误:componentDidUpdate(prevProps) { if (typeof this.props.location.state.serial == "undefined"){const database = db.ref().child("Devices/" + prevProps.location.state.serial);...提前致谢!
1 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
location
首先,您应该对和对象进行测试location.state
,因为它们可能是undefined
因为在状态或父组件的 props 中进行任何更新后立即调用此方法。你应该这样做:
componentDidUpdate(prevProps) { if (this.props.location && this.props.location.state && typeof this.props.location.state.serial === "undefined"){const database = db.ref().child("Devices/" + prevProps.location.state.serial); ...
或者,如果您想利用新的 EcmaScript 语法:
componentDidUpdate(prevProps) { if (typeof this.props.location?.state?.serial === "undefined"){const database = db.ref().child("Devices/" + prevProps.location.state.serial); ...
添加回答
举报
0/150
提交
取消