如何在 React 中使用增量运算符

2024-03-24

为什么当我做的时候this.setState({count:this.state.count*2})它正在工作,但是当我这样做时:this.setState({count:this.state.count++})它不起作用?

为什么,以及如何解决它?

完整代码:

var Hello = React.createClass({
    getInitialState:function(){
    return {count:parseInt(this.props.count)}
  },
    a:function(){
    this.setState({count:this.state.count++})
    console.log(this.state)
  },
  render: function() {
    console.log(this.state)
    return <div onClick={this.a}>Click to increment the counter<b> {this.state.count} </b></div>;
  }
});

ReactDOM.render(
  <Hello count="1" />,
  document.getElementById('container')
);

但这段代码正在运行:

a:function(){
    this.setState({count:this.state.count*2})
    console.log(this.state)
  },

JSFiddle:https://jsfiddle.net/69z2wepo/55100/ https://jsfiddle.net/69z2wepo/55100/


setState是一个异步函数。 React 可能会批处理一堆setState在一起。 所以价值this.state.count是您发出请求时的值。

更好的解决方案是调用在执行 setState 时评估的函数。

this.setState((prevState, props) => ({
    counter: prevState.counter + 1
})); 

from https://facebook.github.io/react/docs/state-and-lifecycle.html https://facebook.github.io/react/docs/state-and-lifecycle.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 React 中使用增量运算符 的相关文章

随机推荐

  • Ruby on Rails:我的实际目标是什么?

    我一直在 Ruby on Rails 3 中构建应用程序 并且开始担心性能优化 现在我希望我的问题对于这个网站来说不太主观 但我对事实感兴趣 而不是讨论 所以这里是 虽然我试图让视图渲染得更快 但有一件事我根本不知道 我的目标是什么 给定一
  • 在同一活动中将数据片段传递给片段

    我有一些问题想询问有关在活动中将数据从一个片段传递到另一个片段的问题 我不知道该怎么做 有人可以帮忙吗 这是我的代码 ShareFragment java package com example user8 myapplication im
  • C - 两个指针之间的转换行为

    2020年12月11日更新 感谢 一些程序员老兄 在评论中的建议 我的根本问题是我们的团队正在实现动态类型存储引擎 我们分配多个字符数组 PAGE SIZE 缓冲区16 对齐存储动态类型的数据 没有固定的结构 出于效率原因 我们无法执行字节
  • 在 Windows 8 Metro 风格应用程序中,如何在应用程序未运行时更新动态磁贴?

    在 Windows 8 Metro 风格应用程序中 如何在应用程序未运行时更新动态磁贴 当操作系统开始启动时 动态磁贴开始运行 http blogs msdn com b windowsappdev archive 2012 04 16 c
  • Selenium Python 最小化浏览器窗口

    我知道如何从驱动程序对象调用最大化窗口的方法 driver maximize window 但是当我需要最小化浏览器窗口 隐藏它 时应该使用什么方法呢 实际上 驱动程序对象没有最大化窗口属性 我的目标是在浏览器窗口中默默地工作 我不想在我的
  • 如何从 docker 镜像中删除图层?

    我通过增量提交构建了一个 docker 映像 这导致在我的 docker 镜像中创建了很多层 随后镜像的大小变得非常大 有没有办法去除图层并从而减小图像的大小 任何帮助 将不胜感激 您可以尝试导出图像 然后再次导入 通过这种方式 所有图层都
  • TortoiseMerge 可以用作 Windows Git Bash 的 difftool 吗?

    我刚刚开始使用 Git 我想使用 TortoiseMerge 作为 difftool 和 mergetool In my HOME gitconfig我有以下部分 我已经删除了这个问题的用户和颜色部分 merge tool tortoise
  • 如何在android中以编程方式将视频发送到电子邮件

    我想从我的 Android 应用程序将 30 秒的视频发送到电子邮件 我已发送带有图像附件的电子邮件 但它不适用于视频 请帮助我做到这一点 提前致谢 send setOnClickListener new OnClickListener O
  • 针对依赖扩展对象的任务的 Gradle 插件最佳实践

    我希望获得有关定义依赖于外部状态的插件任务的最佳实践的反馈 即在引用插件的 build gradle 中定义 我使用扩展对象和闭包来推迟访问这些设置 直到它们需要且可用为止 我也对任务之间共享状态感兴趣 例如将一个任务的输出配置为另一任务的
  • 标签中提取内容 C# RegEx

    我有一个代码 string tag div string pattern string Format lt 0 gt
  • 2 个具有相同名称的 iPhone 应用程序。这怎么可能?

    As per iTunes Connect 开发人员指南 https itunesconnect apple com docs iTunesConnect DeveloperGuide pdf 1 应用程序名称应清晰 2 应用程序名称不应通
  • 根据属性值更改 VisualState

    如何根据 WP7 上的属性值更改 VisualState 我尝试使用 MVVM 模式 当我的模型加载时 我希望我的视图进入特定的 VisualState 在 Silverlight 中 我们有属性更改的触发器 但在 WP7 中没有 PS 我
  • 为什么 getline() 函数不起作用,除非我在函数 chamodifier 中调用它两次[重复]

    这个问题在这里已经有答案了 怎么了如果我在字符修饰符函数中仅使用一次 get line 函数 编译器将忽略它 除非我调用该函数两次 为什么我不能只使用一次 我尝试使用其他方法 它有效 但我想了解这个 我现在只是随机编写一些内容 这样添加更多
  • Laravel 5.5 Eloquent WhenLoaded 关系

    On the Laravel 5 5 文档 https laravel com docs 5 5 eloquent resources under 条件关系 它说 whenLoaded 方法可用于有条件地加载关系 我在我的代码中尝试过 pu
  • UIView 与容器视图

    这就是我想要解决的问题 In each viewController我正在尝试插入广告和实际的控制元素 我在 raywenderlinch com 上完成了几个教程 以了解人们如何专业地将广告放入他们的应用程序中 他们使用 UIViews
  • Delphi/GDI+:设备上下文何时创建/销毁?

    通常在 Delphi 中使用 GDI 你可以使用绘画盒 并在期间进行绘画OnPaint event procedure TForm1 PaintBox1Paint Sender TObject var g TGPGraphics begin
  • 通过 TCP 的 C# 字节流

    我是一名初级工程师 希望就如何解决这个问题向这里所有有经验的人寻求一些建议 我被分配了一个项目来创建一个通过 TCP 进行字节流传输的服务器 客户端应用程序 我们公司处理带有 GPS 和调度软件的 2 路无线电 我们想用它制作一个服务器 客
  • Android - 嵌套片段参与填充选项菜单

    我正在实现新的嵌套片段功能 但遇到了问题 我的观点基本上是这样的 主要活动 A 其中包括一个片段 B 这个片段 B 包括一个寻呼机适配器 它有 3 个页面 每个页面都是一个片段 C 还 以前对于新的 getchildfragmentmang
  • 正则表达式以一致的顺序提取字符串的不同部分

    我有一个字符串列表 my strings 2002 03 04 with Matt Important 2016 01 23 with Mary with Tom on 2015 06 30 我想提取 日期 始终采用 yyyy mm dd
  • 如何在 React 中使用增量运算符

    为什么当我做的时候this setState count this state count 2 它正在工作 但是当我这样做时 this setState count this state count 它不起作用 为什么 以及如何解决它 完整