在React中设置状态是否更简单?

问题描述 投票:0回答:1

我只是React的初学者,我一直在寻找一种更简单的方法来设置状态。一个重要的注意事项是它在功能组件内部。

    const [ personState, setPersonsState ] = useState({
      persons: [
        { name : 'Max', age : 28 },
        { name : 'Manu', age : 29 },
        { name : 'Stephanie', age : 26 }
      ]
    });

我知道通常情况是这样的,并且这样很好。

    setPersonsState({
      persons: [
        { name : 'Max', age : 28 },
        { name : 'Ati', age : 29 },
        { name : 'Stephanie', age : 26 }
      ]

但是我认为每次都很难手动输入,所以我试图使我的生活更轻松。

    const newState = personState;
    newState.persons[1].name = 'Ati';
    setPersonsState(newState)

这没有用,我也不知道为什么。当我将它们注销时,console.log成功地更改了,但是由于某种原因,状态没有刷新,尽管我使用了set命令。我还注意到React的一些奇怪行为,当我使用此newState.persons[1].name = 'Ati';命令时,它也更改了personState变量。因此personStatenewState变量在控制台中都看起来像这样。

    {persons: Array(3)}
    persons: Array(3)
    0: {name: "Max", age: 28}
    1: {name: "Ati", age: 29}
    2: {name: "Stephanie", age: 26}
    length: 3
    __proto__: Array(0)
    __proto__: Object

我很感谢任何帮助或解释,为什么这不起作用。

reactjs status
1个回答
0
投票

我将尝试通过使用.map()来更新状态,如下所示:

.map()

我希望这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.