react-native通过webview嵌入vue网页,通信问题?

react-native通过webview嵌入vue网页:
页面a:react-native页面
页面b:react-native通过webview嵌入的vue页面
页面c:react-native页面
1.从a跳转到b:使用props.navigation.navigate跳转
2.从b页面内的网页跳转到c是:网页通过ReactNativeWebView.postMessage通知b页面,b页面使用props.navigation.navigate跳转到c
3.c做完一些操作后返回b,想通过props.navigation.back回去,发现直接回到a页面。在页面c打印路由栈,没有页面b。

如何返回页面b呢?只能重新进入页面b吗?进入的效果很明显,而且如果重新进入页面b一堆填写的数据还要提前保存。

阅读 445
avatarAI BotBETA

在这种情况下,您可以尝试在 props.navigation.navigate 跳转到 B 页面时,将 B 页面添加到路由栈的顶部,而不是路由栈的末尾。这样,当您从 C 页面返回 B 页面时,React Native 会知道您需要返回到路由栈中的下一个页面,而不是直接返回到 A 页面。

要实现这一点,您可以使用 props.navigation.dispatch 方法来执行一个跳转操作,并将其添加到路由栈的顶部。下面是一个示例代码:

// 跳转到 B 页面
props.navigation.navigate('B');

// 将 B 页面添加到路由栈的顶部
const action = NavigationActions.navigate({
  routeName: 'B',
  navigationParams: { key: 'bKey' }, // 可以设置一个唯一的 key 来标识该跳转操作
});
props.navigation.dispatch(action);

通过这种方式,当您从 C 页面返回 B 页面时,React Native 会根据路由栈中的顺序返回到 B 页面,而不是直接返回到 A 页面。

请注意,这种方法可能会对您的应用程序的导航结构产生影响。在某些情况下,您可能需要在导航器的设计方面进行一些调整,以确保在执行返回操作时能够正确地返回到所需的页面。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏