我不知道为什么我得到下面的错误。我怀疑这与供应商有关,但我不知道如何解决这个问题。我怀疑它与提供程序有关的原因很简单,因为当我注释掉第71-73行并取消注释67-69行时,它呈现并且错误消失了。
错误:Main(…):渲染没有返回任何内容。这通常意味着缺少返回语句。或者,如果不呈现任何内容,则返回null。错误:
40 | useEffect(() => {
41 | setLoaded(true);
42 | firebase.auth().onAuthStateChanged(user => {
> 43 | user ? setLoggedIn(true) : setLoggedIn(false);
| ^ 44 | });
45 | // return() => null;
46 | }, []);
我代码:
1 import { StatusBar } from 'expo-status-bar';
2 import React, { useState, useEffect } from 'react';
3 import { NavigationContainer } from "@react-navigation/native";
4 import { createStackNavigator } from "@react-navigation/stack";
5 import { View, Text } from "react-native"
6 import { Provider } from "react-redux"
7 import { createStore, applyMiddleware } from "redux"
8 import LandingScreen from "./components/auth/Landing"
9 import RegisterScreen from "./components/auth/Register"
10 import MainScreen from "./components/Main"
11 import firebase from "firebase"
12 import config from "./config"
13 import rootReducer from "./redux/reducers"
14 import thunk from "redux-thunk"
15
16 const store = createStore(rootReducer, applyMiddleware(thunk))
17
18 // For Firebase JS SDK v7.20.0 and later, measurementId is optional
19 const firebaseConfig = {
20 apiKey: config.API_KEY,
21 authDomain: config.AUTH_DOMAIN,
22 projectId: config.PROJECT_ID,
23 storageBucket: config.STORAGE_BUCKET,
24 messagingSenderId: config.MESSAGING_SENDER_ID,
25 appId: config.APP_ID,
26 measurementId: config.MEASUREMENT_ID
27 };
28
29 if(firebase.apps.length === 0) {
30 firebase.initializeApp(firebaseConfig);
31 }
32
33 const Stack = createStackNavigator();
34
35 export function App() {
36
37 const [ loaded, setLoaded ] = useState(false);
38 const [ loggedIn, setLoggedIn ] = useState(false);
39
40 useEffect(() => {
41 setLoaded(true);
42 firebase.auth().onAuthStateChanged(user => {
43 user ? setLoggedIn(true) : setLoggedIn(false);
44 });
45 // return() => null;
46 }, []);
47
48 if(!loaded) {
49 return(
50 <View style={{ flex: 1, justifyContent: "center" }}>
51 <Text>Loading</Text>
52 </View>
53 );
54 }
55
56 if(!loggedIn) {
57 return (
58 <NavigationContainer>
59 <Stack.Navigator initialRouteName="Landing">
60 <Stack.Screen name="Landing" component={LandingScreen} options={{ headerShown: false }}/>
61 <Stack.Screen name="Register" component={RegisterScreen} options={{ headerShown: false }}/>
62 </Stack.Navigator>
63 </NavigationContainer>
64 );
65 } else {
66 return (
67 // <View style={{ flex: 1, justifyContent: "center" }}>
68 // <Text>jawn</Text>
69 // </View>
70
71 <Provider store={store}>
72 <MainScreen />
73 </Provider>
74 );
75 };
76
77 }
78
79 export default App
这可能有帮助
if (!loaded) {
return (...);
}
return !loggedIn ? (
<NavigationContainer>
<Stack.Navigator initialRouteName="Landing">
<Stack.Screen
name="Landing"
component={LandingScreen}
options={{ headerShown: false }}
/>
<Stack.Screen
name="Register"
component={RegisterScreen}
options={{ headerShown: false }}
/>
</Stack.Navigator>
</NavigationContainer>
) : (
<Provider store={store}>
<MainScreen />
</Provider>
);