docs: function updateComponent(instance, state, callback, immediateUpdate) {
      let fiber = get(instance);
      fiber.dirty = true;
  
      let sn = typeNumber(state);
      let isForced = state === true;
      let microtasks = getQueue(fiber);
  
      state = isForced ? null : sn === 5 || sn === 8 ? state : null;
      if (fiber.setout) {
          // cWM/cWRP中setState， 不放进列队
          immediateUpdate = false;
      } else if ((isBatching && !immediateUpdate) || fiber._hydrating) {
          //事件回调，batchedUpdates, 错误边界, cDM/cDU中setState
          pushChildQueue(fiber, batchedtasks);
      } else {
          //情况4，在钩子外setState或batchedUpdates中ReactDOM.render一棵新树
          immediateUpdate = immediateUpdate || !fiber._hydrating;
          pushChildQueue(fiber, microtasks);
      }
      mergeUpdates(fiber, state, isForced, callback);
      if (immediateUpdate) {
          Renderer.scheduleWork();
      }
  }