1

我只是在反应中做了一个简单的解构,但它显示标题为错误消息,我不知道为什么。这是我的代码:

const {correct_answer, incorrect_answers} = data[0]
const arr = [correct_answer, ...incorrect_answers]
console.log(arr)

运行此代码后,在浏览器控制台中显示以下错误消息:

TypeError: Cannot destructure property 'correct_answer' of 'data[0]' as it is undefined.

谁能看到我错在哪里?

4

3 回答 3

1

似乎data第 0 个位置不包含元素?你有没有试过console.log(data)看看里面到底有什么?

于 2021-02-25T09:15:03.297 回答
1

您将需要处理 data[0] 的 null 情况。

const {correct_answer, incorrect_answers} = data[0] || {};

或者,如果您使用的是较新的 ECMA 版本:

const {correct_answer, incorrect_answers} = data[0] ?? {};
于 2021-02-25T09:25:59.547 回答
1

data[0]可能未定义,错误也是如此。

您可以为解构变量分配默认值。假设它们是数组,您可以像下面那样做。

const {correct_answer= [], incorrect_answers=[]} = data[0] || {};
const arr = [correct_answer, ...incorrect_answers]
于 2021-02-26T04:59:21.443 回答