相关疑难解决方法(0)

JS解构.如何处理null或undefined值

如何在实现Nullable功能?我需要支持我以前的同事的源代码,他使用了过多的解构功能.像这样的东西,每个地方:

dispatch(
    loadImports(response.items.map(({ importRecord: { ['import']: importId } }) => importId))
)
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我可能会收到TypeError: Cannot read property 'import' of null错误.

我不想将整个结构重写为常规条件.或者如果没有,如何处理它们,而不重写?

UPD:

同事的预期版本:https: //jsbin.com/fesewiy/edit?js,console

当前版本:https://jsbin.com/qirixil/edit?js,console

javascript ecmascript-6

7
推荐指数
1
解决办法
2022
查看次数

如何解构 JavaScript 中可能未定义的嵌套对象

我有一个返回如下对象的函数:

{
    data: {key1: value1, ...},
    errors: [...]
}
Run Code Online (Sandbox Code Playgroud)

我可以key1用以下内容提取:

const { data: { key1 }} = myFunction()
Run Code Online (Sandbox Code Playgroud)

但是,有时data未定义会导致解构失败。

我查看了解构示例,但无法弄清楚如何在可能未定义的key1情况下退出。data

有没有办法在执行解构时分配默认值{}todata以免失败?

javascript

4
推荐指数
1
解决办法
1731
查看次数

解构嵌套 props 出现未定义错误

static getDerivedStateFromProps(props) {
    const {
      name
    } = props.users;
    return { name };
  }
}
Run Code Online (Sandbox Code Playgroud)

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

TypeError
Cannot read property 'name' of undefined
Run Code Online (Sandbox Code Playgroud)

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

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

javascript destructuring ecmascript-6 reactjs

1
推荐指数
1
解决办法
732
查看次数

如何保护代码免于解构 Javascript 中的空值?

我是Javascript中解构和可选提议的忠实粉丝。

我不禁感到,在解构 null 或 undefined 值时,如果结果未定义,因为它在可选链中而不是抛出错误,那将非常有用。

例如:

const person = null
console.log(person?.age) // undefined
Run Code Online (Sandbox Code Playgroud)

然而:

const person = null
const { age } = person // runtime error
Run Code Online (Sandbox Code Playgroud)

它当然不会像这样工作,但是是否有一些 Babel 建议添加此功能?有什么解决方法吗?

javascript nullable destructuring

0
推荐指数
1
解决办法
477
查看次数