gpt4 book ai didi

reactjs - React 中有 setState() 的简写方法吗?

转载 作者:行者123 更新时间:2023-12-03 13:40:28 24 4
gpt4 key购买 nike

假设我像这样初始化组件的状态:

getInitialState: function(){
return {name: "Bob Smith",
phone: "555-555-5555",
location: "San Francisco, CA",
best-friend: "Bill Jacobson",
favorite-color: "Orange"}
},

然后,如果我只想修改其中一个状态,我会被告知以下内容是禁忌:

this.state.name = "John Smith";

但我应该使用:

this.setState({name: "John Smith",
phone: this.state.phone,
location: this.state.location,
best-friend: this.state.best-friend,
favorite-color: this.state.favorite-color});

必须有一种更有效的方法来做到这一点。是否有一种速记方法可以以一种对 react 安全的方式仅更改状态对象的一个​​属性?

最佳答案

实际上,您不必指定所有值。仅限您希望为其赋予新值(value)的那个。

setState 只会向您的状态添加(或随后覆盖)值。它不会重新创建整个对象。

可以找到相关文档here 。 Facebook 开发人员也考虑了您在这里提出的完全相同的问题,并且在幕后他们保留了旧的值(value)观,我在这里引用:

The first argument can be an object (containing zero or more keys to update) or a function (of state and props) that returns an object containing keys to update.

关于reactjs - React 中有 setState() 的简写方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38060856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com