猿问

React:检查 props 是否未定义

如果 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);

...

提前致谢!


郎朗坤
浏览 102回答 1
1回答

慕婉清6462132

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); ...
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答