访问 React 状态中另一个对象内的对象数组

时间:2021-07-26 02:41:35

标签: javascript reactjs react-hooks

起初,我曾经有过这种状态:

const [object, setObject] = useState({
    var1: 'value 1',
    var2: 'value 2',
    var3: 'value 3',
    booleanVar: false
});

当我想更新值时,我这样做了:

const newState = {
    var1: 'new value 1',
    var2: 'new value 2'
}

setObject(prevState => ({ ...prevState, ...newState }));

上面的例子工作得很好,但现在我有另一个包含一个对象的状态,在这个对象中我有一个对象数组。

const [object, setObject] = useState({
    array: [
        {
            var1: 'value 1',
            var2: 'value 2',
            var3: 'value 3'
        }
    ],
    booleanVar: false
});

访问和更新数组内对象的正确方法是什么?

我怎样才能在数组中添加另一个对象?

有没有像我以前一样的简单方法?

1 个答案:

答案 0 :(得分:1)

试试这个:

const stateCopy = {...state};

stateCopy.array[0].var1 = 'foo';

setObject(stateCopy);