热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

直接在this.setState中返回对象文字和原始值之间的区别?(React.JS)

我的目标是通过state方法来更改this.setState对象,但是有

我的目标是通过state方法来更改this.setState对象,但是有些事情让我感到困惑。

首先,我创建了一个名为newCount的对象常量,给出了一个新的key: value对数据并返回了newCount,但是浏览器并没有增加count的值我所期望的。

这是代码:

this.setState(prevState => {
var newCount = {
count: prevState.count + 1
} // It won't increase. Just keeps showing 1.
return {
newCount
}
})

但是当我尝试直接像这样返回值时,它会起作用:

this.setState(prevState => {
return {
count: prevState.count + 1
} // It goes working.
})

这两个代码块有什么区别?


第一个代码示例在状态newCount内创建了一个新字段:

return {
newCount,// es6 shorthand - equals to `newCount: newCount`
}

第二个示例正常工作,因为您要更新正确的count字段。

如果您想同时使用这两种方法,只需添加正确的字段名称:

return {
count: prevState.count + 1,// or `count: newCount.count`
}

有关对象初始化的更多详细信息:https://developer.mozilla.org/en-US/docs/Web/Javascript/Reference/Operators/Object_initializer


推荐阅读
  • 我正在学习网络性能课程,其中共享以下代码:Interestingoperatorconstobjects ... [详细]
  • 十一、构建我们自己的包在本章中,我们将学习如何构建自己的包。编写包可以让我们创建可以在许多应用 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 前端微服务二
    为了解决庞大的一整块后端服务带来的变更与扩展方面的限制,出现了微服务架构(Microservices):微服务是面向服务架构(SOA)的一种变体,把应用程序设计成一系列松耦合的细粒 ... [详细]
  • WebBrowser控件(1)
    WindowsPhone7内置了一个强大的网络浏览器,该浏览器的内核是基于桌面版的InternetExplorer7(Mango版基于InternetE ... [详细]
  • kafkamanager(cmak)安装及使用
    1.软件下载kafka-manager工具目前改名为cmak,下载地址为:https:github.comyahooCMAKreleasestag3.0.0.5现在 ... [详细]
  • 作者|相学长原文|https:github.comwuomzfxblogblobmasterthis.md日常开发中,我们经常用到this。例如用Jquery绑定事件 ... [详细]
  • 怎么使用提高开发效率的VSCode插件
    这篇文章将为大家详细讲解有关怎么使用提高开发效率的VSCode插件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所 ... [详细]
  • 媒介本日再看React纯函数的时刻,看到纯函数历程没有副作用,就是说在纯函数中我们不能转变外部状况.想到了之前看过的函数中传参的观点.数据范例在js中,数据范例分为两类:基础范例值 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文提供了成为成功软件工程师的7条建议,包括不要低估自己、公司需要你、投资自己等。通过学习新技术、提升编码技能,软件工程师可以获得更好的职业机会和更高的薪水,同时也增强自信。投资自己是取得成功的关键。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • Oasis 公布 Q3、Q4 路线图 | 推动 Sapphire 成为隐私王冠上闪耀明珠 ... [详细]
  • Todo-react-redux-immutable综合运用react,redux,react-redux,immutable.js,styled-components等工具库,完 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
author-avatar
想太多先生的微博
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有