`

React addons.update setState 链式更新object属性

阅读更多

在上一篇文章里,我使用纯js更新object对象,然后在setState里面,这样操作属于原生的,今天在解读React.addons对象的时候,发现有update函数也可以链式更新对象,挺方便的,就是解读起来不那么容易。

import React from 'react';


// 经过种种setState, detail对象是这样的:this.state.detail.iteminfo.state

this.setState({
  showmessage:true,
  pmessage:"领取任务成功",
  detail: React.addons.update(this.state.detail, {iteminfo: {status: {$set: 'doing'}}})
});

// check status
{this.state.detail.iteminfo.status=="doing"?<div className="giveup" onClick={this.fio_giveup.bind(this)}>放弃任务</div>:""}

 

update其他可使用函数:

 

  • {$push: array} push() all the items in array on the target.
  • {$unshift: array} unshift() all the items in array on the target.
  • {$splice: array of arrays} for each item in arrays call splice() on the target with the parameters provided by the item.
  • {$set: any} replace the target entirely.
  • {$merge: object} merge the keys of object with the target.
  • {$apply: function} passes in the current value to the function and updates it with the new returned value.



    有疑问或技术交流,扫描公众号一起讨论学习。

    更多React在线学习访问:http://each.sinaapp.com/react/index.html


    更多实例应用扫码体验:

分享到:
评论

相关推荐

    react下的react.min.js和react-dom.js

    在React生态系统中,`react.min.js`和`react-dom.js`是两个核心库文件。 `react.min.js`是React库的压缩版本,"min"代表“最小化”,意味着它已经过混淆和压缩处理,以减少文件大小,提高网页加载速度。这个文件...

    react下载,包括react.development.js;babel.min.js;react-dom.development.js

    在这个压缩包中,包含的三个关键文件——`react.development.js`, `babel.min.js`, 和 `react-dom.development.js`,都是React生态系统中的重要组成部分。 1. **react.development.js**: 这是React库的开发版本。在...

    react.js、react-dom.js、babel.js文件包下载

    React.js、react-dom.js和babel.js是开发基于React的应用程序时不可或缺的JavaScript库和工具。在深入探讨这些文件之前,让我们先理解React的基本概念。React是由Facebook开发的一个用于构建用户界面的JavaScript库...

    react.development.js

    听说你在找react.development.js这个文件,在带走它前记得收藏加点赞

    react开发相关js资源包大全,基本都有,免费下载

    `React.Component`是所有React类组件的基类,提供了一些生命周期方法,如`render`、`componentDidMount`、`componentDidUpdate`等,用于控制组件的渲染和更新。 在React开发中,通常会配合其他JavaScript库或工具,...

    react-dom.development.js

    听说你在找react-dom.development.js这个文件,在带走它前记得收藏加点赞、听说你在找react-dom.development.js这个文件,在带走它前记得收藏加点赞、听说你在找react-dom.development.js这个文件,在带走它前记得...

    ReactComponent.js

    ReactComponent是每个React组件的基石,它是JavaScript类的实例,通过继承React.Component或使用ES6的类语法来创建。了解其内部工作原理对于提升React开发技能至关重要。 首先,让我们看看ReactComponent的生命周期...

    React:setState详解

    react之setState遇到的坑、解释setState为什么是异步的、怎样变成同步setState。。。。。。

    react-classset:打包在 npm 中的 React.addons.classSet()

    React.addons.classSet()是React.js早期版本中提供的一个实用工具,用于方便地管理组件的CSS类名。在React的生态系统中,这个方法允许开发者动态地组合和设置多个类名,尤其是在类名取决于组件状态或属性的情况下。...

    06-react-setState.md

    `setState`不仅是React中用于更新组件状态的API,它还涉及到了React的状态更新机制、性能优化以及事件处理等核心概念。下面将详细解读上述文档内容中提到的`setState`知识点。 ### setState是什么 `setState`是...

    css-transition-group:用于React.addons.CSSTransitionGroup的独立CSSTransitionGroup

    这个库最初是作为React的一个addon,即`React.addons.CSSTransitionGroup`,但现在已经被废弃,推荐使用更新的替代品。`css-transition-group` 提供了一种方式来管理和控制组件的进入、离开和更新阶段的动画效果,这...

    React入门.pdf

    11. **优化技巧**:包括shouldComponentUpdate、PureComponent、React.memo等优化策略,以及如何使用React DevTools进行性能分析。 12. **React生态系统**:React并非孤立存在,它有丰富的生态系统,如React Native...

    react学习笔记之state以及setState的使用

    React为了优化性能,会批量处理多个setState()调用,这意味着在调用setState()之后立即访问this.state可能无法获取到最新的值,因为状态更新是异步的。 setState()的第一个参数可以是两种类型:Object或Function。...

    前端开源库-react-addons-create-fragment

    使用`React.addons.createFragment`方法,你可以这样做: ```jsx var fragment = React.addons.createFragment({ key1: &lt;div&gt;Child 1, key2: &lt;span&gt;Child 2, }); &lt;ParentComponent&gt;{fragment} ``` 在这个例子中...

    react架构.rar

    React以其高效的虚拟DOM(Document Object Model)更新机制和组件化开发模式赢得了开发者们的广泛喜爱。 在“react架构.rar”这个压缩包中,我们可能找到了关于如何组织和构建React应用的资料。这可能包括基础教程...

    react笔记.rar

    React提供了多种性能优化策略,如使用`shouldComponentUpdate`或`React.memo`防止不必要的渲染,利用PureComponent和React.PureComponent进行浅比较,以及使用`React.memo`对函数组件进行记忆化。 综上所述,React...

    浅谈使用React.setState需要注意的三点

    浅谈使用React.setState需要注意的三点 在 React 中,使用 setState 是一件很复杂的事情,即使是熟练的 React 开发,也很有可能因为 React 的一些机制而产生一些 bug。因此,在使用 setState 时需要注意三个问题: ...

Global site tag (gtag.js) - Google Analytics