inflearn logo
강의

講義

知識共有

チキン代で学ぶJS上級

useStateの自作実装

useState 직접 구현 부분에서 질문이 있습니다.

1

taluee

投稿した質問数 2

0

setCount가 전역변수에 없으면 setCount is not defined; 오류가 발생합니다.
Codex가 Counter()는 문자열을 반환하고 setCount는 Counter의 지역변수라서 브라우저가 setCount를 전역에서 찾기 때문에 나타나는 오류라고 합니다. <--이부분이 어렵습니다.
아래처럼 변경하거나 addEventListener의 콜백으로 구현하라고 하네요.

const states = [];
    let cursor = 0;
    let setCount;

    function useState(initialValue) {
      const index = cursor;
      cursor++;

      if (states[index] === undefined) {
        states[index] = initialValue;
      }

      const setState = (newValue) => {
        states[index] = newValue;
        cursor = 0;
        render();
      };

      return [states[index], setState];
    }

    function Counter() {
      const [count, _setCount] = useState(0);
      setCount = _setCount;

      return `<button onClick="setCount(${count + 1})">${count}</button>`;
    }

    function render() {
      const root = document.querySelector("#root");
      cursor = 0;
      root.innerHTML = Counter();
    }

    render();

 

javascript 웹앱 함수형-프로그래밍 es6 객체지향 react.js vanilla-javascript

回答 0

학습을 하고 블로그에 정리를 해도 괜찮을까요?

1

8

1

IO활용-회원관리예제1 샘플코드 문의

0

6

1

교재(3쇄)와 강의 내용 문의

0

18

2

node js 설치 시 npm이 계속 안됩니다.

0

20

1

중급 1편 학습 방향에 대해 조언 부탁드립니다

0

28

1

SingletonService가 JVM이 뜰 때 생성되는게 맞나요?

0

29

1

섹션2번 부분 강의 화면이 잘 못된것 같아서 문의합니다.

0

23

1

call stack 표현이 잘못표현된것이 아닌가요?

0

55

2

7.5 강의에서 settings.json 붙여 넣기 내용이 영상과 다릅니다

0

52

2

React 와 Virtual DOM 의 이야기 영상 실행이 안됩니다.

0

34

1

상태(State) 가 "시간이 지남~" 에 대해 질문 있습니다.

0

32

2

PPT 자료 공유 받을 수 있을까요?

0

31

1

본 강의와는 상관없는 내용입니다만..

0

35

1

왜 클로드.md 파일에 프롬프트를 넣는건지 궁금합니다

0

55

1

강의 일정 및 수업 자료 공유 관련 문의드립니다!

0

34

1

import {} 중괄호 차이점

0

38

2

일반 강의와 차이점?

1

52

1

!= 연산자의 역할

0

35

1

[ 문의]몽고DB connect 의 건

0

47

2

AI 권한 부여가 안됩니다.

0

60

2

중요하진 않지만 설명하신부분에서 안된부분..

1

34

1

제공되는 react_code.zip 중에 ..

0

47

2

강의 듣는 순서가 어떻게 되나요?

0

48

1

김영한로드맵으로 백엔드개발자가 될 수 있나요?

0

105

2