Làm cách nào tôi có thể Thiết lập lại hoạt động cuối cùng trong phản ứng gốc cho Android?Làm thế nào tôi có thể thiết lập trở lại hoạt động cuối cùng trong phản ứng bản địa cho android?
suy nghĩ của tôi là:
1 bộ _navigate trong index.android.js
// 设置回退的堆栈
var _navigator;
BackAndroid.addEventListener('hardwareBackPress', function() {
if (_navigator && _navigator.getCurrentRoutes().length > 1) {
_navigator.pop();
return true;
}
return false;
});
2 đường chuyền navigator trong RouteMapping:
RouteMapper: function(route, navigationOperations, onComponentRef) {
_navigator = navigationOperations;
if (route.name === 'detail') {
// 问题详情页
return (
<DetailScreen
navigator={navigationOperations}
question={route.question} />
);
} else if (route.name == 'front') {
// 首页
return(
<FrontScreen
navigator={navigationOperations}
/>
);
}
},
3 set push trong danh sách xem
gotoDetail: function(question: Object) {
this.props.navigator.push({
id: question.question_id,
name: 'detail',
question: question
})
Nhưng nó không hoạt động. Khi tôi bấm vào nút quay lại trong Android, nó nhảy ra khỏi ứng dụng?
Tôi có thể làm như thế nào?
Hoặc Bất kỳ ai cũng có thể đưa ra một số ví dụ?
Một vài điều nhỏ nhặt mà tôi đã tìm thấy: ngay cả khi bạn cập nhật phiên bản npm của phản ứng gốc, bạn sẽ cần phải chạy init hoặc cập nhật MainActivity của bạn bằng tay. Điều này sẽ cần phải được triển khai cho thiết bị, tự động cập nhật của JS sẽ không chọn điều này. – ooolala
Tôi đã thêm mã này và bây giờ dự án của tôi sẽ không chạy, tôi có nên chạy lệnh npm trong terminal sau khi thêm nó không? cảm ơn –
@Stefan Klasen Xin chào, tại sao tôi gặp lỗi "ReactInstanceManager có quyền truy cập riêng tư trên ReactActivity" khi tôi thêm mã này? – TeodorKolev