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;
相关推荐
React官方提供了一个名为`React.addons.LinkedStateMixin`的插件,它包含了一个`linkState`函数,可以帮助我们更简洁地实现双向绑定。但是需要注意,这个插件在React 16版本之后已经被废弃,建议使用社区的替代方案...
首先,React官方并未内置直接支持双向绑定的API,但可以通过`React.addons.LinkedStateMixin`这个混入(mixin)来实现。`LinkedStateMixin`提供了一个`linkState`方法,该方法用于创建一个`reactLink`对象,这个对象...
React纯化 这种方便的ES7装饰器使您可以轻松地将您的...@ mix ( [ LinkedStateMixin , PureRenderMixins , ... ] ) class MyComp { //... } 准备使用组件工厂 import { UI , pureUI } form 'react-purify' const M
这个方法由方便的 mixin React.addons.LinkedStateMixin ,它本质上只是将onChange事件处理程序绑定到<input>字段的this.setState()函数。 转换和管道 该模块公开了一个辅助函数,它提供了一种简单方便的方法...
方便的mixin React.addons.LinkedStateMixin公开了此方法,该方法实际上只是将<input>字段的onChange事件处理程序绑定到this.setState()函数。 这很棒,特别是在创建具有多个输入字段的组件时,但是如果要在...