当前,我有一个抽屉,上面有我的各种路线
Main - Drawer Stack nav
A - Stack nav
B - Stack nav
当用户单击嵌套在抽屉组件中的按钮时,我想替换A - Stack nav
中的路由。
有没有人知道如何实现这一目标?我已经尝试过使用CommonActions,但是它们似乎只会影响抽屉堆栈,而不是嵌套的堆栈
答案 0 :(得分:0)
我设法使用下面的代码解决了问题
navigation.dispatch((state:any) => {
const index = 2;
const routes = state.routes.filter((r:any) => r.name !== 'people');
routes.splice(index, 0, {name:'people'});
return CommonActions.reset({
...state,
routes,
});
});
navigation.navigate('people')
因此,用户从抽屉组件中按下一个按钮,该按钮将执行以下操作
people
的路线{name:"people"}
CommonActions.reset
名为people
的路由现在已刷新,并从头开始。
-注意---将index
更改为路线索引。
这可能不是一个干净的方法,我很想知道一个更好的解决方案。