30/09/2018, 23:42

Làm thế nào để unmount route ở trong routeStack của Navigator (không dùng pop)

Cho mình hỏi về Component là Navigator: Làm thế nào để loại bỏ một route trong routeStack, đồng thời unmount nó luôn.
Ví dụ routeStack của mình (màn hình đang ở E):
A B C D E
Mình muốn gỡ bỏ C, đồng thời unmount C luôn:
A B D E

Nguyễn Phú viết 01:46 ngày 01/10/2018

routeStack là danh sách routes dùng để khởi tạo trong Navigator. Thường thì ko ai xoá route, chỉ là có navigate tới hay không thôi. Bạn đang ở E tức là C không được mount, vậy sao unmount được.
Cho mình hỏi chút, nếu bạn đang ở scene E, vậy bạn đang muốn làm gì tiếp theo mà phải gỡ bỏ C. ?

明玉 viết 01:51 ngày 01/10/2018

Không bạn, C không hiển thị nhưng nó vẫn chạy, giờ mình muốn nó không chạy nữa và được unmount cơ, tức là event componentWillUnmount của nó sẽ được chạy ấy.

Nguyễn Phú viết 01:50 ngày 01/10/2018

ah sorry bạn. Quên phần đó. Nếu bạn muốn tự control như vậy thì đừng dùng cái initialRouteStack, Tại mình dùng cái react-native-router-flux nên cũng ko nhớ rõ cái navigator.

明玉 viết 01:55 ngày 01/10/2018

Mình có dùng initialRouteStack hay không thì routeStack nó cũng sinh ra như vậy rồi. API của navigator cũng không có method unmount, chẳng lẽ mình có thể sửa trực tiếp routeStack à?

Nguyễn Phú viết 01:55 ngày 01/10/2018

Vì thật sự mình cũng không biết mục đích thực tế khi bạn muốn unmount 1 stack là gì. routeStack thì đơn nhiên lúc nào cũng có. Do bạn nói là ko muốn nó preload trước thì mình nói không nên dùng initialRouteStack. Còn nếu bạn muốn unstack kiểu: sau khi login, sẽ chuyển vào screen Home, lúc này mình ko cho phép user back lại cái stack trước nữa, thì dùng replace để bỏ mấy cái stack như login, intro. Or bỏ toàn bộ bằng reset.

Bài liên quan
0