类型错误:无法读取 null 的属性“foo” - 对象,反应

时间:2021-05-14 08:13:00

标签: javascript reactjs object

TypeError: Cannot read property 'foo' of null 有时返回 null 时,我得到 bar

当值栏为空时如何防止?

我认为 bar: { foo } = {} 这是解决方案,但不是 :(

export default function Component({ data }) {
  
  const {
    bar: { foo } = {},
  } = data

return (...)
}

1 个答案:

答案 0 :(得分:3)

null 在技术上是一个定义的值,所以在这里使用回退值语法是失败的。

一个简单的解决方案是将 Optional Chaining operatorNullish Coalescing 结合使用。

const { foo } = data?.bar ?? {};

如果 data.bar 不是 nullundefined,则使用它,否则提供后备空对象。

const data1 = { bar: { foo: 'foobar' }};
const data2 = { bar: null };

const { foo: foo1 } = data1?.bar ?? {};
console.log(foo1); // foobar

const { foo: foo2 } = data2?.bar ?? {};
console.log(foo2); // undefined