我正在使用 Firebase 身份验证对存储用户做出原生反应。当我登录或注册时,我收到一条错误消息,询问我是否有一个名为“HomeScreen”的屏幕,如最后一个代码块所示。我相信我的“用户?”第一个代码块中的行每次都返回 null,因此不会点击 hte 主屏幕。有人知道解决方案吗?
提前致谢。
export default function App() {
const [loading, setLoading] = useState(true)
const [user, setUser] = useState(null)
return (
<NavigationContainer>
<Stack.Navigator>
{ user ? (
<Stack.Screen name="HomeScreen" component={HomeScreen} >
{(props) => <HomeScreen {...props} extraData={user} />}
</Stack.Screen>
) : (
<>
<Stack.Screen name="Login" component={LoginScreen} />
<Stack.Screen name="Registration" component={RegistrationScreen} />
</>
)}
</Stack.Navigator>
</NavigationContainer>
);
}
const onLoginPress = () => {
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.then((response) => {
const uid = response.user.uid
const usersRef = firebase.firestore().collection('users')
usersRef
.doc(uid)
.get()
.then((firestoreDocument) => {
if (!firestoreDocument.exists) {
alert('User does not exist anymore.')
return
}
const user = firestoreDocument.data()
navigation.navigate('HomeScreen', { user })
})
.catch((error) => {
alert(error)
})
})
.catch((error) => {
alert(error)
})
}
const onRegisterPress = () => {
if (password !== confirmPassword) {
alert("Passwords don't match.")
return
}
firebase
.auth()
.createUserWithEmailAndPassword(email, password)
.then((response) => {
const uid = response.user.uid
const data = {
id: uid,
email,
fullName,
}
const usersRef = firebase.firestore().collection('users')
usersRef
.doc(uid)
.set(data)
.then(() => {
navigation.navigate('HomeScreen', { user: data })
})
.catch((error) => {
alert(error)
})
})
.catch((error) => {
alert(error)
})
}
export default function HomeScreen(props) {
return (
<View>
<Text>Home Screen</Text>
</View>
)
}```
# **The Error**
带有负载 {"name":"HomeScreen","params":{"user":{"email":"[email protected]","id":"GTyOXdSOglhpAlthv6yGn0KeMgq1","fullName" :"altaaf jahankeer "}}} 没有被任何导航器处理。
你有一个名为“HomeScreen”的屏幕吗?
如果您尝试导航到嵌套导航器中的屏幕,请参阅https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator。
在 node_modules@react-navigatio