#reactjs #react-native #react-navigation
#reactjs #react-native #реагировать-навигация
Вопрос:
Я создал перехват, который содержит состояние аутентификации пользователя. Когда пользователь вошел в систему, я хочу обновить это состояние, я создал функцию внутри App.js , как мне использовать эту функцию на моем экране входа в систему, чтобы обновить перехват, а затем отправить пользователя на главный экран.
Мне нужно использовать updateAuth внутри моего экрана входа в систему и передать ему true, как это сделать
export default function App() {
const [isAuthenticated, setIsAuthenticated] = useState(false);
AsyncStorage.getItem("auth").then((val) =>
val == "true" ? setIsAuthenticated(true) : setIsAuthenticated(false)
);
function updateAuth(value) {
value ? setIsAuthenticated(value) : null;
}
return isAuthenticated ? (
<NavigationContainer>
<Stack.Navigator headerMode="none" initialRouteName="Home">
<Stack.Screen name="Home" component={Home} />
<Stack.Screen name="Product" component={Product} />
<Stack.Screen name="Orders" component={Orders} />
</Stack.Navigator>
</NavigationContainer>
) : (
<NavigationContainer>
<Stack.Navigator headerMode="none">
<Stack.Screen name="Welcome" component={Welcome} />
<Stack.Screen name="Login" component={Login} />
<Stack.Screen name="Signup" component={Signup} />
</Stack.Navigator>
</NavigationContainer>
);
-
Элемент списка
}
Ответ №1:
Используйте initialParams
prop.
<Stack.Screen name="Login" component={Login} initalParams={{isAuthenticated}} />