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
    0_1530003308025_2018-06-26_15-53-32.jpg

    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));
    

    Đam mê công nghệ
    Không biết nhiều nhưng cũng muốn đóng góp

    0


  • @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 0_1530012504087_image.png
    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-work

    Lúc đầu username là Kha Phạm sau mình test đổi thành chữ "ok" mà nó không hoạt động

    Đam mê công nghệ
    Không biết nhiều nhưng cũng muốn đóng góp

    0


  • 0_1530013158627_image.png
    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.

    Đam mê công nghệ
    Không biết nhiều nhưng cũng muốn đóng góp

    0


  • @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ó

    Đam mê công nghệ
    Không biết nhiều nhưng cũng muốn đóng góp

    0

Log in to reply