swsnu / swppfall2020

28 stars 17 forks source link

[Practice Session 4] pdf 파일 29페이지에 대하여 #59

Open cheezafizz opened 4 years ago

cheezafizz commented 4 years ago

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 항목을 클릭할 시 별도의 페이지로 넘어가야 한다는데도 아무일도 일어나지 않습니다.

kooyunmo commented 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가 인식되지 않는 에러가 발생합니다.

cheezafizz commented 4 years ago

withRouter를 사용해도 아무런 변화가 없었습니다. 에러도 나지 않고 todo 항목을 클릭해도 아무런 변화가 일어나지 않았습니다.

sugsugsug commented 4 years ago

저 이 문제 vscode 에서 모든 파일 save 하니까 해결되었습니다..!