Mình vừa mới tìm hiểu redux-saga có một số vấn đề chưa hiểu?
-
Video
0_1530002694255_2018-06-26_15-43-59.mp4
Mình cập nhật được store rồi nhưng nó không cập nhật lại những gì mình sử dụng trong store. Không biết làm sai chổ nào. Ai rành chỉ mình với
render() { // Lấy tên người dùng gá gán vào isLogin let isLogin = (this.props.items.Login.username !== "") ? this.props.items.Login.username : null; return ( ...... <Link className="nav-link" to="/profile">{isLogin}</Link> ...... ) } export default withRouter(connect(mapStateToProps, mapDispatchToProps)(navBar));
-
@Kha-Pham
Bạn cần cung cấp thêm thông tin hàm mapStateToProps và reducer để mọi người đủ thông tin để giúp bạn.
Nhưng cơ bản để React Component render lại bạn phải có thay đổi trên data mà nó bind.
Bạn thử apply deep-clone data trước khi trả về cho store trong reducer xem.
Bạn xem thêm lodash.cloneDeep https://lodash.com/docs/4.17.10#cloneDeep
-
@Quy-Tran
cám ơn bạn đã trả lời. mình đang thử dùng cái này https://redux.js.org/troubleshooting#something-else-doesnt-workLúc đầu username là Kha Phạm sau mình test đổi thành chữ "ok" mà nó không hoạt động
-
Hoạt động ổn định rồi. Copy dán tùm lum luôn nhưng vẫn không hiểu. Bạn có thể giải thích giúp mình được không.
Chổ Object.ssign đó mình dùng mà không hiểu lắm.
-
@Kha-Pham :
Object.assign sao chép thuộc tính của object state sang object {'username': 'ok'}. Nhưng cũng chỉ copy bình thường.
-
Theo như mình tìm hiểu thì phải [...state] hoặc Object.assign thì khi đó nó mới update tất cả các component sử dụng. Còn gán trực tiếp state = {something: value } tuy thay đổi được nhưng nó không cập nhật UI của các component sử dụng nó