2016-11-19 2 views
0

나는 React와 Redux를 배우고 있는데, 나는 기본적인 ToDo리스트를하고있다.React와 Redux - ComponentDidUpdate 비동기?

componentDidUpdate에 문제가 있습니다.

나는 REDUX 행동에 dispatch 통해 행을 삭제하고 componentDidUpdate에서 내가 좋아하는 소품의 변화를 기다릴 다음 : 업데이트되고있는 또 다른 props이 있다고,

componentDidUpdate =() => { 
    if (this.props.todoDelted) { 
    this.refreshTodoList() 
    } 
} 

문제는 또한 todoDelted이 처음으로 업데이트됩니다. 내가 prevProps과 비교할 때 todoDeleted는 항상 한 번만 업데이트되었으므로 undefined입니다.

this.refreshTodoList()은 소품을 업데이트 할 때마다 한 번만 실행할 수 있습니까?

답변

0

실제로는 componentDidUpdate 방법을 사용할 필요가 없습니다.

this.props.dispatch(someAction(payload)).then(this.refreshTodoList);

함수가 한 번만 호출됩니다 : 당신은 다음처럼 작성할 수

dispatch 방법은 약속을 반환합니다.

+0

다음과 같이 표시됩니다. '_this.props.dispatch (...). 그러면 함수가 아닙니다.' – Pablo

+1

좋아요. 당신이 감속기를 사용한다면'todoDeleted'를 디폴트로'false'로 만들 수 있습니다. 감속기에서 '참'으로 변경하십시오. –

+0

그게 내가 지금하고있는 일이야, 아마도 어쩌면 나는 상태의 유일한 변화가'todoDelted'에서 거짓으로 3 회 – Pablo

관련 문제