1. react/index.js 에서 react/src/React 에서 export한 useState를 export하고 있다
  2. react/src/React.js 에서는 react/src/ReactHooks.js 에서 export한 useState를 export하고 있다
  3. react/src/ReactHooks.js 에서는 resolveDispatcher가 반환하는 dispatcher의 useState프로퍼티에 initialState를 넣어서 반환하고 있다.
export function useState<S>(
	initialState: (() => S | S,
): [S, Dispatch<BasicStateAction<S>>] {
	const dispatcher = resolveDispatcher();
	return dispatcher.useState(initialState);
}
  1. resolveDispatcher 함수는 ReactCurrentDispatcher.current를 반환 하는데 이 때 ReactCurrentDispatcher.current가 null일 경우 error를 출력한다.
  2. ReactCurrentDispatcherreact/src/ReactCurrentDispatcher.js에서 import 한다.
  3. ReactCurrentDispatchercurrent 라는 key 값을 가진 객체이다.
const ReactCurrentDispatcher = {
		current : (null : null | Dispatcher),
};
export default ReactCurrentDispatcher;

State가 저장되는 구조

setState()는 setter가 아닌, Dispatch 요청이다