ReactStateSetters用于更新state[key]值。
'use strict'; var ReactStateSetters = { // 本模块的ReactStateSetters.Mixin.createStateSetter更灵活地实现自动更新组件的state createStateSetter: function (component, funcReturningState) { return function (a, b, c, d, e, f) { var partialState = funcReturningState.call(component, a, b, c, d, e, f); if (partialState) { component.setState(partialState); } }; }, // LinkedStateMixin模块中调用,实现linkState方法实现双向数据绑定 createStateKeySetter: function (component, key) { // Memoize the setters. var cache = component.__keySetters || (component.__keySetters = {}); return cache[key] || (cache[key] = createStateKeySetter(component, key)); } }; function createStateKeySetter(component, key) { var partialState = {}; return function stateKeySetter(value) { partialState[key] = value; component.setState(partialState); }; } ReactStateSetters.Mixin = { // 添加为组件的mixins类方法,createStateSetter(xValue=>{x: xValue})(1)将和setState({x: 1})起相同效果 createStateSetter: function (funcReturningState) { return ReactStateSetters.createStateSetter(this, funcReturningState); }, // 添加为组件的mixins类方法,createStateKeySetter('x')(1)将和setState({x: 1})起相同效果 createStateKeySetter: function (key) { return ReactStateSetters.createStateKeySetter(this, key); } }; module.exports = ReactStateSetters;