`

LinkedStateMixin

 
阅读更多

LinkedStateMixin模块为组件提供linkState方法,用于构建linkState(key)函数,自动更新组件state[key]值,实现双向绑定。

 

'use strict';

// 构建对象{value,requestChange},value为初始值,requestChange为方法,须手动调用
// 在本模块中,value为state[key]的初始值,requestChange用于更新state[key]
var ReactLink = require('./ReactLink');

// 设定属性key后,返回函数,该函数接受value,内部调用组件component.setState方法,更新state[key]=value
var ReactStateSetters = require('./ReactStateSetters');

/**
 * 针对react手动调用setState方法的单向数据流,提供双向绑定
 * 使用linkState(key).requestChange(value)传值后自动调用setState方法,更新state
 *
 * 示例
 * var LinkedStateMixin = require('react-addons-linked-state-mixin');

 * var WithoutLink = React.createClass({
 *   mixins: [LinkedStateMixin],
 *   getInitialState: function() {
 *     return {message: 'Hello!'};
 *   },
 *   render: function() {
 *     var valueLink = this.linkState('message');
 *     var handleChange = function(e) {
 *       valueLink.requestChange(e.target.value);
 *     };
 *     return <input type="text" value={valueLink.value} onChange={handleChange} />;
 *   }
 * });
 */
var LinkedStateMixin = {
  // ReactStateSetters.createStateKeySetter方法用于构建linkState(key)返回对象的requestChange方法
  // 实现传值后自动调用setState方法,更新state
  linkState: function (key) {
    return new ReactLink(this.state[key], ReactStateSetters.createStateKeySetter(this, key));
  }
};

module.exports = LinkedStateMixin;

 

0
0
分享到:
评论

相关推荐

    React实现双向绑定示例代码

    组件需要mixins:引用LinkedStateMixin。它提供一个linkState方法。 参数是state属性 双向绑定用valueLink={this.linkState(XX)} linkState方法返回一个对象,有一个value属性,指定state的属性。 还有一个...

    react-purify:逐步从状态中净化您的组件

    React纯化 这种方便的ES7装饰器使您可以轻松地将您的...@ mix ( [ LinkedStateMixin , PureRenderMixins , ... ] ) class MyComp { //... } 准备使用组件工厂 import { UI , pureUI } form 'react-purify' const M

    reactlink-pipe:ReactLink 数据绑定方法的管道,用于数据验证和格式化等

    这个方法由方便的 mixin React.addons.LinkedStateMixin ,它本质上只是将onChange事件处理程序绑定到&lt;input&gt;字段的this.setState()函数。 转换和管道 该模块公开了一个辅助函数,它提供了一种简单方便的方法...

    reactlink-immutable:双向绑定Mixin for React并支持Immutable.js数据结构

    方便的mixin React.addons.LinkedStateMixin公开了此方法,该方法实际上只是将&lt;input&gt;字段的onChange事件处理程序绑定到this.setState()函数。 这很棒,特别是在创建具有多个输入字段的组件时,但是如果要在...

    Mysql 教程(Markd格式 经典全面 看这一个资料就够了)

    Mysql 教程(Markd格式 经典全面 看这一个资料就够了)涵盖了mysql工作流、事务、锁、索引、性能优化、运维和配置等各个方面。

    pyzmq-25.1.0-cp36-cp36m-musllinux_1_1_i686.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    my-tv-v2.1.2.apk

    电视剧里面了

    debugpy-1.6.2-cp39-cp39-macosx_10_15_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    泛微OAE10,E-Builder零代码应用构建平台操作手册

    泛微OAE10,E-Builder零代码应用构建平台操作手册

    布尔诺理工大学的VHDL课程

    布尔诺理工大学(Brno University of Technology, BUT)提供的 VHDL(硬件描述语言)课程是计算机工程和电子工程学科的重要组成部分,专注于数字系统设计和实现。该课程旨在为学生提供 VHDL 的基础知识和实用技能,使他们能够设计、模拟和实现复杂的数字电路。 ### **课程概述** **课程目标** - **掌握 VHDL 基础**:理解 VHDL 的语法、结构和基本概念,包括信号、变量、过程、函数和实体。 - **学习数字设计技术**:使用 VHDL 描述、设计和验证组合逻辑、时序电路和复杂的数字系统。 - **掌握建模和仿真**:学习如何通过 VHDL 对数字系统进行建模,并使用仿真工具进行验证。 - **硬件实现能力**:通过编译 VHDL 代码,在 FPGA 等硬件平台上进行综合与实现。 **课程内容** - **VHDL 语言基础**:介绍 VHDL 的基本语法,包括数据类型、运算符和控制结构。 - **结构化设计**:讲解如何使用 VHDL 进行层次化设计,模块化设计,以及组件实例化。 - **组合逻辑电路**:学习如何用 VHDL 描述

    docker SWARM 部署教程

    docker SWARM 部署教程

    pyzmq-25.0.2-cp39-cp39-musllinux_1_1_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    同城拼车(完整带PHP后台)

    同城拼车(完整带PHP后台)

    cryptography-2.6.1-cp34-abi3-macosx_10_6_intel.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于PHP+MySQL+Ajax实现的在线二手书交易平台+源代码+详细文档

    php 基于PHP+MySQL+Ajax实现的在线二手书交易平台+源代码+详细文档

    redis升级和部署6.2.6最新稳定版文档和程序

    redis升级和部署6.2.6最新稳定版文档和程序.zipredis升级和部署6.2.6最新稳定版文档和程序.zipredis升级和部署6.2.6最新稳定版文档和程序.zipredis升级和部署6.2.6最新稳定版文档和程序.zipredis升级和部署6.2.6最新稳定版文档和程序.zipredis升级和部署6.2.6最新稳定版文档和程序.zipredis升级和部署6.2.6最新稳定版文档和程序.zipredis升级和部署6.2.6最新稳定版文档和程序.zipredis升级和部署6.2.6最新稳定版文档和程序.zipredis升级和部署6.2.6最新稳定版文档和程序.zip

    03钢筋锥螺纹连接工程.doc

    03钢筋锥螺纹连接工程

    154653668719337b站.apk

    154653668719337b站.apk

    ipython-0.7.3-py2.5.egg

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于ssm框架网上花店系统毕业论文

    摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此鲜花销售信息的管理计算机化,系统化是必要的。设计开发网上花店不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于鲜花销售信息的维护和检索也不需要花费很多时间,非常的便利。 网上花店是在MySQL中建立数据表保存信息,运用SSM+Vue框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。管理员登录进入本人后台之后,主要完成花材选择管理,用户管理,鲜花管理,鲜花出入库管理,鲜花订单管理等。用户联系客服咨询问题,查看鲜花,可以收藏,购买,评论鲜花,支付订单,管理个人订单等。 网上花店在让鲜花销售信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升网上花店提供的数据的可靠性,让系统数据的错误率降至最低。 关键词:网上花店;MySQL;SSM+Vue框架

Global site tag (gtag.js) - Google Analytics