加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 20:16:20 所属栏目:百科 来源:网络整理
导读:假设我初始化组件的状态如下: getInitialState: function(){ return {name: "Bob Smith",phone: "555-555-5555",location: "San Francisco,CA",best-friend: "Bill Jacobson",favorite-color: "Orange"}}, 然后,如果我只想修改其中一个状态,我被告知以下是
假设我初始化组件的状态如下:

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});

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

解决方法

实际上,您不必指定所有值.只有您想拥有新值的那个.

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

你可以找到相关的文档here.Facebook开发人员也想到了你在这里提出的完全相同的问题,他们保留了旧的价值观,我在这里引用:

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读