我们翻开react源码(version:16.3.2), 首先是 setState部分,看到这里接受两个参数partialState (局部状态,限定只有对象和函数可以作为第一个参数), callback
Component.prototype.setState = function (partialState, callback) {
!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : void 0;
this.updater.enqueueSetState(this, partialState, callback, 'setState');
};
然后是更新部分enqueueSetState 函数
enqueueSetState: function (instance, partialState, callback) {
var fiber = get(instance);
callback = callback === undefined ? null : callback;
{
warnOnIn