android - React Navigation - Auth Flow - 错误指定的孩子在Android上已经有一个父母
问题描述
我正在尝试使用 react-navigation 在本机反应上实现 Auth Flow,因为它在文档(https://reactnavigation.org/docs/auth-flow)中完成。但是当状态更改以显示 HomeNavigator 时,我收到以下错误(仅在 Android 上,在 iOS 上有效):
The specified child already has a parent. You must call removeView() on the child's parent first.
...
onCreateView (ScreenStackFragment.kt:129)
...
// App.tsx
return (
<ReduxProvider store={rootStore}>
<NavigationContainer ref={navigationRef}>
<RootNavigator />
</NavigationContainer>
</ReduxProvider>
);
// RootNavigator.tsx
export const RootNavigator = selectConnect(selectCurrentUser)((props: Partial<CurrentUserProps>) => {
return (
<Stack.Navigator
screenOptions={{
headerShown: false,
gestureEnabled: true,
}}>
{props.isAuthenticated ? (
<Stack.Screen name="HomeNavigator" component={HomeNavigator} />
) : (
<Stack.Screen name="LoginNavigator" component={LoginNavigator} />
)}
</Stack.Navigator>
);
});
// Note : selectConnect is just a custom function to use connect (redux) with selector
我可以找到解决此问题的任何方法,因此将不胜感激。
谢谢。
环境
React-Native:0.66.0
@react-navigation/native:6.0.4
@react-navigation/native-stack:6.2.2
运行操作系统:Android(在 iOS 上运行良好)
编辑:突发新闻,这似乎是由于@react-navigation/drawer(需要react-native-reanimated),但现在两者都在我的项目中未使用(这仍然是一个问题,因为我很快就会需要这些)。
@react-navigation/drawer: 6.1.6
react-native-reanimated: 2.3.0-beta.2(唯一支持 react-native 0.66.0 的版本)
最小项目重现:https ://github.com/LaGregance/ErrorAuthFlowReactNavigation
解决方案
对于那些面临同样问题的人,我通过将 react-native 降级到版本 0.65.1 并将 react-native-reanimated 降级到 2.2.2 来临时修复它所以显然这是 react-native-reanimated 的问题。
我现在将参考:https ://github.com/software-mansion/react-native-reanimated/issues/2501
推荐阅读
- ruby-on-rails - Rails 导入:“没有将字符串隐式转换为数组”
- python - Watson Discovery API 的 add_document 方法出错
- amazon-redshift - 对时间戳查询的数据进行分区
- python - 如何将编码器的编码输出提供给分类器的输入?
- firebase - Xamarin:全新安装中的本机链接错误
- file-upload - 在 macbook 上上传大文件时 Internet 路由器崩溃“通过 Chrome/Google Drive/Outlook 上传”
- python - 如何设置scrapy蜘蛛ReturnsContract的上限
- javascript - HighCharts yAxis 大数字周围空间太大
- java - 连接到 MQTT 代理
- gpu - google-colaboratory GPU 上的 Pytorch - 非法内存访问