小编J h*_*ung的帖子

如何更新React中的嵌套状态,应该是不可变的吗?

我们正在讨论如何在React中更新嵌套状态.国家应该是不可变的吗?优雅地更新状态的最佳做法是什么?

假设您的状态结构如下所示:

this.state = { 
                numberOfStudents: "3",
                gradeLevel: "5",
                students : [ 
                    { id : "1234",
                      firstName: "John",
                      lastName: "Doe",
                      email: "johndoe@mail.com"
                      phoneNumer: "12345"

                    },
                    { id : "56789",
                      firstName: "Jane",
                      lastName: "Doe",
                      email: "janedoe@mail.com"
                      phoneNumer: "56789"
                    },
                    { id : "11111",
                      firstName: "Joe",
                      lastName: "Doe",
                      email: "joedoe@mail.com"
                      phoneNumer: "11111"
                    }
                ]
            }
Run Code Online (Sandbox Code Playgroud)

然后我们想要更新joe doe的电话号码.我们有两种方法可以做到:

mutate state + force update to rerender

this.state.students[2].phoneNumber = "9999999";
this.forceUpdate();
Run Code Online (Sandbox Code Playgroud)

mutate state + setState with mutated state

this.state.students[2].phoneNumber = "9999999";
this.setState({
     students: this.state.students
}); …
Run Code Online (Sandbox Code Playgroud)

javascript facebook reactjs

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

标签 统计

facebook ×1

javascript ×1

reactjs ×1