eastjun-dev / frontend

MIT License
2 stars 4 forks source link

[mission002] TODOS 시스템에 비동기/온오프라인을 고려하여 업데이트하기 #14

Open StellaKim1230 opened 4 years ago

StellaKim1230 commented 4 years ago

7 [mission002]

궁금한점.

코드 시도 후 아래와 같은 에러가 나왔는데, 이유를 모르겠습니다. 같이 고민해보아요!

  1. fetchTodoData 안에 있는 this.setState is not function 이라고 나옴
    function App() {
    const fetchTodoData = async () => {
    const data = await apiHandler({ url: 'http://todo-api.roto.codes' })
    this.setState(data)
    }
    fetchTodoData()
    this.setState = (data) => {
    this.todoList.setState(data)
    }
    }
  2. this.todoList.setState(data) 부분에서 this.todoList 가 undefined 라고 에러남
    function App() {
    const fetchTodoData = async () => {
    const data = await apiHandler({ url: 'http://todo-api.roto.codes' })
    setState(data)
    }
    fetchTodoData()
    this.todoList = new TodoList({
    data: this.data,
    })
    function setState(data) {
    this.todoList.setState(data)
    }
    }
  3. fetchTodoData 안에 있는 setState(data) 에서 Cannot access ‘setState’ before initialization 이라고 나옴
    function App() {
    const fetchTodoData = async () => {
    const data = await apiHandler({ url: 'http://todo-api.roto.codes' })
    setState(data)
    }
    fetchTodoData()
    const setState = (data) => {
    this.todoList.setState(data)
    }
    }
StellaKim1230 commented 4 years ago

올려주신 궁금한 점 1, 2, 3이 제 컴퓨터에서는 재현이 안 되더라구요! 아무 콘솔 오류도 없어요.

지은님 컴퓨터에서는 어떻게 보이는지 궁금하네요~

제가 new App()을 안했었던 것 같기도 허고 ㅠㅠ 다시 해봐야겠네요 ㅠㅠ

StellaKim1230 commented 4 years ago

리뷰 늦게 드려 죄송합니다.ㅜ 눈에 보이는 몇 가지에 대해 리뷰 남겨보았습니다..!! 그리고, 질문 1, 2, 3은 해결 되신건가요? 1, 2 는 this 에 해당 프로퍼티들이 없어서 발생한 문제 같아 보여서요..ㅜ

아뇨 아직 ㅠ this에 해당 프로퍼티 들이 없다는 말씀은 this.setState() 이 함수자체가 없다는 말씀이신가요??ㅠㅠ 아니면 제가 new App() 을 안해서 발생한 거 같기도 하고 ㅠㅠ 헷갈리네요 항상 ㅠ

YongHoonJJo commented 4 years ago

리뷰 늦게 드려 죄송합니다.ㅜ 눈에 보이는 몇 가지에 대해 리뷰 남겨보았습니다..!! 그리고, 질문 1, 2, 3은 해결 되신건가요? 1, 2 는 this 에 해당 프로퍼티들이 없어서 발생한 문제 같아 보여서요..ㅜ

아뇨 아직 ㅠ this에 해당 프로퍼티 들이 없다는 말씀은 this.setState() 이 함수자체가 없다는 말씀이신가요??ㅠㅠ 아니면 제가 new App() 을 안해서 발생한 거 같기도 하고 ㅠㅠ 헷갈리네요 항상 ㅠ

new App() 을 안하면 function App() { ... } 은 그냥 함수이기 때문에, this 가 존재하지 않을 것 같아요!! Obj.method() 에서 this 는 Obj 가 되는데, method 를 호출한 주체를 확인해보셔야 할 것 같아요.!