reactjs React状态对象属性被设置为未定义

hujrc8aj  于 2022-12-03  发布在  React
关注(0)|答案(1)|浏览(158)

我初始化了以下名为myCriteria的状态对象

const [myCriteria, setMyCriteria] = useState({
    myFieldStatusDropdown: myFieldStatusDropdown,
    selectedMyFieldStatus: myVarMyFieldStatusDropdown?.value,
});

现在我在这行的正上方设置了断点

setMyCriteria({
    ...myCriteria,
    selectedMyFieldStatus: myCriteria.myFieldStatusDropdown[0]
});

在断点处,我检查并看到myCriteria.myFieldStatusDropdown,如下所示

[
{
    code: 'Select',
    value: 'Select'
}, {
    code: 'AA',
    value: 'A 1'
}, {
    code: 'BB',
    value: 'B 1'
}
]

然而,由于某种奇怪的原因,在执行setMyCriteria行之后,当我检查myCriteria.selectedMyFieldStatus的值时,它是错误的,即它不是被设置为

{
    code: 'Select',
    value: 'Select'
}

将其设置为未定义
不确定为什么它被设置为未定义

83qze16e

83qze16e1#

我只是使用myCriteria进行初始化,并以数组的形式将三个对象放入其中

var myFieldStatusDropdown = [
    {
        code: 'Select',
        value: 'Select'
    }, {
        code: 'AA',
        value: 'A 1'
    }, {
        code: 'BB',
        value: 'B 1'
    }
]

 const [myCriteria, setMyCriteria] = useState({
    myFieldStatusDropdown: myFieldStatusDropdown,
    selectedMyFieldStatus: myFieldStatusDropdown[1]
});

然后使用setMyCriteria更新myCriteria

setMyCriteria({
    ...myCriteria,
    selectedMyFieldStatus: myFieldStatusDropdown[0]
},[myCriteria]);

相关问题