首页 > 解决方案 > 解构嵌套道具得到未定义的错误

问题描述

static getDerivedStateFromProps(props) {
    const {
      name
    } = props.users;
    return { name };
  }
}

使用上面的代码,我得到了一个错误

TypeError
Cannot read property 'name' of undefined

问题是什么?users如果未定义,我认为对象解构会自动处理?

我可以在getDerivedStateFromProps不返回任何内容的情况下使用 if 语句吗?

标签: javascriptreactjsecmascript-6destructuring

解决方案


“我认为如果users 未定义对象解构会自动处理?”

不,它不会自动执行。

props.users似乎是的情况下undefined,您将收到此错误

const props = {};
const { user: {name} } = props;
console.log(name); 
// "Uncaught TypeError: Cannot read property 'name' of undefined",

解决方案: 用于Default value摆脱该错误

const props = {};
const { user: {name} = {name: "default-user-name"} } = props;
console.log(name);


推荐阅读