为了账号安全,请及时绑定邮箱和手机立即绑定

React:检查 props 是否未定义

React:检查 props 是否未定义

郎朗坤 2023-10-14 19:17:46
如果 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);
...


查看完整回答
反对 回复 2023-10-14
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信