#react-native
#react-native
Вопрос:
Прежде всего, извините за этот очень обычный вопрос. Я новичок в React-Native.
Я использовал навигацию в приложении, и я просто добавляю правую кнопку на панели навигации для выхода из App.js . этот код:
import React from 'react';
import { StyleSheet, Text, View,SafeAreaView, ScrollView,Button,Alert} from 'react-native';
import PresentationalComponent from './PresentationalComponent'
import List from './List.js'
import Login from './Login.js'
import SignUp from './SignUp.js'
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { useRoute } from '@react-navigation/native';
const Stack = createStackNavigator();
class App extends React.Component {
constructor(props) {
super(props);
}
logOutAction(){
Alert.alert('Done!','Are you sure you want to log-out?',
[{text: 'Cancel'},{text : 'Yes',onPress: this.done}]
)
}
done(){
//alert(List.props.navigation.state.routeName)
}
render() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Login" component={Login} options={{ title: 'Log-In' }} />
<Stack.Screen name="SignUp" component={SignUp} options={{ title: 'Sign-Up'}} />
<Stack.Screen name="List" component={List} options={{ headerLeft:null, headerRight: () => (
<Button
onPress={() => this.logOutAction()}
title="Log-Out"
color="#000"
/>
) } }/>
</Stack.Navigator>
</NavigationContainer>
);
}
}
export default App;
Мое действие кнопки выхода из системы существует в App.js класс. Как запустить приложение с Login.js когда я нажимаю на кнопку выхода из системы?
Комментарии:
1. Как вы управляете входом в систему? вы должны условно отображать стек на основе статуса входа в систему, проверьте это reactnavigation.org/docs/auth-flow
2. @GuruparanGiritharan спасибо, пользователь может войти в систему с экрана входа в систему, после успешного входа пользователя в систему он переходит к экрану списка. И из App.js Я добавил кнопку «Выход из системы» в правой части навигации на экране списка. Итак, теперь, когда пользователь нажимает на эту кнопку, и ее действие существует в app.js класс итак, как я могу перемещаться по экрану входа в систему
3. Пожалуйста, проверьте мой ответ
4. Проверка того же братана
Ответ №1:
Чтобы получить доступ к навигации с помощью кнопки заголовка, вам нужно сделать, как показано ниже
<Stack.Screen name="List" component={List} options={({navigation})=>({ headerLeft:null, headerRight: () => (
<Button
onPress={() => this.logOutAction(navigation)}
title="Log-Out"
color="#000"
/>
)})}/>
Таким образом, logoutAction будет иметь доступ к навигации, которую вы можете использовать
logOutAction(navigation){
Alert.alert('Done!','Are you sure you want to log-out?',
[{text: 'Cancel'},{text : 'Yes',onPress:()=> this.done(navigation)}]
)
}
done(navigation){
navigation.navigate('Login');
}
Комментарии:
1. Спасибо за вашу помощь, я точно хочу того же!