Open cheezafizz opened 4 years ago
withRouter
를 사용해야 render 시에 wrapping된 component(이 경우 TodoList
)로 업데이트된 match
, location
, history
props를 넘겨줄 수 있습니다.
만약 export default connect(mapStateToProps, mapDispatchToProps)(withRouter(TodoList));
에서 withRouter
를 제거하면 TypeError: Cannot read property 'push' of undefined
와 같이 this.props.history
가 인식되지 않는 에러가 발생합니다.
withRouter를 사용해도 아무런 변화가 없었습니다. 에러도 나지 않고 todo 항목을 클릭해도 아무런 변화가 일어나지 않았습니다.
저 이 문제 vscode 에서 모든 파일 save 하니까 해결되었습니다..!
29페이지에 withRouter를 사용하면서 아래와 같은 설명이 있습니다.
However, it raises Error! since we passed render in Route at App.js ○ <Route path='/todos' exact render={() => } />
저는 이부분에서 에러가 나지 않고 아무일도 일어나지 않습니다. 왜 에러가 나야하는지도 잘 모르겠습니다.
그리고 이후에 history.push 코드를 작성하여도 눌러도 아무 변화가 없습니다.
App.js에 routing이 :id로 component={RealDetail}인것도 확인하였고
Todo.js에 onClick={props.clickDetail}인 것도 확인하였는데 아무리 코드를 보아도 왜 눌렀을 때 아무런 변화가 없는지 모르겠습니다
수업시간에 언급해주신 것 같았는데 너무 경황이 없어서 답변이 잘 기억나지 않습니다.
혹시 이유를 다시 여쭤봐도 될까요?
withRouter로 wrap해주면 todo 항목을 클릭할 시 별도의 페이지로 넘어가야 한다는데도 아무일도 일어나지 않습니다.