Tôi có ứng dụng React/Mobx. Khi tôi thực hiện thay đổi trong cửa hàng, thành phần đang cập nhật (tái kết xuất), nhưng tôi cần thực hiện một số so sánh để thêm một số chức năng khác, vì vậy tôi muốn sử dụng componentWillReceiveProps (nextProps) và so sánh nextProps với this.props. Bằng cách nào đó nó không được gọi. Bất kỳ ý tưởng, những gì tôi đang làm sai, hoặc những gì khác tôi có thể làm, để có được điều đó?React/Mobx - thành phần đang hiển thị lại, nhưng componentWillReceiveProps() không được gọi là
5
A
Trả lời
1
tl; dr: sử dụng componentWillUpdate
và componentDidUpdate
Đối tượng cửa hàng thông qua như là một chỗ dựa không bao giờ thay đổi, ngay cả khi có thay đổi nội dung của nó. Bí quyết sử dụng @observable là nó sẽ kích hoạt cập nhật trong thành phần mà không thay đổi các đạo cụ. Vì vậy, sử dụng các chức năng vòng đời như shouldComponentUpdate, componentWillReceiveProps và componentDidReceiveProps sẽ không hoạt động vì chúng được kích hoạt khi thay đổi của đạo cụ hoặc trạng thái của thành phần. Tài liệu mobx giải thích rõ trong phần shouldComponentUpdate.
Vì vậy, để nắm bắt cập nhật trong một quan sát, chúng ta phải đi sâu hơn một chút trong ngăn xếp vòng đời và sử dụng componentWillUpdate
và componentDidUpdate
.
Các vấn đề liên quan
- 1. Thành phần Angular2 không được hiển thị
- 2. Hiển thị chuỗi là thành phần React
- 3. React use componentWillReceiveProps để tái render thành phần
- 4. Thành phần menu không hiển thị
- 5. Thay thế mô-đun nóng - Đang cập nhật nhưng không hiển thị lại
- 6. Góc 2 Thành phần không hiển thị
- 7. vẽ một phần không được hiển thị
- 8. Tại sao setup.exe không hiển thị ARPCOMMENTS & WIXUIBanner.bmp nhưng setup.msi đang hiển thị nội dung này?
- 9. cách tìm hiểu Thành phần java đang được hiển thị trên màn hình
- 10. Android TTS onUtteranceMọi lại gọi lại không được gọi là
- 11. Tại sao thuộc tính kết hợp thành phần "được hiển thị" lại ném Ngoại lệ IllegalArgument?
- 12. onClick không hiển thị thành phần phản hồi mới.
- 13. Thành phần phản ứng không hiển thị lại khi thay đổi trạng thái
- 14. Trạng thái âm đạo là "đang chạy" nhưng VirtualBox hiển thị "Tắt nguồn"
- 15. Android: Gọi lại với thành phần WebView?
- 16. ProgressDialog không được hiển thị khi AsyncTask.get() được gọi
- 17. BufferedImage không hiển thị (tất cả màu đen) nhưng Hình ảnh có thể được hiển thị
- 18. Các thành phần phản ứng không hiển thị
- 19. Sự kiện khi thành phần hiển thị
- 20. Thành phần phản ứng không hiển thị lại sau khi thay đổi đạo cụ
- 21. PIL: selftest không thành công, nhưng gói hiển thị trạng thái là tốt?
- 22. Chỉ thị AngularJS không được gọi là
- 23. Facebook không được hiển thị trong UIActivityViewController nhưng twitter có
- 24. Tại sao thành phần Om Next không hiển thị lại khi trạng thái thay đổi?
- 25. Nút hoặc m2: orm.connect gọi lại không được gọi là
- 26. Thành phần sẽ không hiển thị trong NavigatorIOS - React Native
- 27. Jest - Cách tìm thành phần DOM được hiển thị có id?
- 28. componentWillReceiveProps trạng thái khác với trạng thái hiển thị sau khi cập nhật trạng thái redux
- 29. Phản ứng thành phần xem không nhận được cập nhật
- 30. Tại sao một số thành phần tiện ích không hiển thị khi được nhúng trong iBook?
dán mã của bạn tại đây, vui lòng –
Xem xét điều này: https://github.com/mobxjs/mobx-react/issues/281 – robertklep
Và cụ thể trên lời giải thích ** tiết niệu **. https://github.com/mobxjs/mobx-react/issues/281#issuecomment-309410018 – felixmosh