如何解决如何使用php mysql解决React Native LogOut问题
This is error show then is used this props.screenProps.onLogout(); for logout *这是错误显示TypeError:undefined不是对象(正在评估“ props.screenProps”) 所以请我为我做些什么 我试图编写php脚本进行登录和注销。登录工作正常,但问题是我退出后按了后退按钮时出现了一些错误 * App.js
import React from "react";
import {View,AsyncStorage,} from "react-native";
import LoginView from './components/LoginView';
import HomeView from './components/HomeView';
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
is_logged_in: false,};
AsyncStorage.getItem('fam_user_data')
.then((item) => {
if (item != null) {
this.setState({ 'is_logged_in': true });
}
});
}
onLogout() {
AsyncStorage.removeItem('fam_user_data');
this.setState({is_logged_in: false});
}
render() {
if (this.state.is_logged_in){
return (
<View style={{flex: 1}}>
<HomeView screenProps={{onLogout: this.onLogout.bind(this)}} />
</View>
);
} else {
return (
<View style={{flex: 1}}>
<LoginView loginSccess={() => this.setState({is_logged_in: true})} />
</View>
);
}
}
}
家庭浏览
import React from "react";
import {
View,Text,TouchableOpacity,Image,Alert,SafeAreaView,ScrollView
} from "react-native";
import { NavigationContainer } from '@react-navigation/native';
import { createDrawerNavigator,DrawerContentScrollView,DrawerItemList,DrawerItem } from '@react-navigation/drawer';
import { createStackNavigator } from '@react-navigation/stack';
import EditHome from '.././pages/EditHome';
import EditAbout from '.././pages/EditAbout';
const CustomDrawerComponent = (props) => (
<SafeAreaView style={{flex: 1}}>
<View style={{height: 150,alignItems: 'center',justifyContent: 'center'}}>
<Image
source={require('../assets/logo.png')}
resizeMode={'cover'}
style={{ width: 128,height: 128} }
/>
</View>
<ScrollView>
<DrawerItemList {...props} />
</ScrollView>
<TouchableOpacity onPress={()=>
Alert.alert(
'Log out','Do you want to logout?',[
{text: 'Cancel',onPress: () => {return null}},{text: 'Confirm',onPress: () => {
props.screenProps.onLogout();
}},],{ cancelable: false }
)
}>
<Text style={{margin: 16}}>Logout</Text>
</TouchableOpacity>
</SafeAreaView>
)
const Drawer = createDrawerNavigator();
const Stack = createStackNavigator();
function MyStack(){
return(
<Stack.Navigator initialRouteName="Home">
<Stack.Screen name="EditAbout" component={EditAbout} options={{ title: 'Edit Home' }}/>
<Stack.Screen name="EditHome" component={EditHome} options={{ title: 'Edit Home' }}/>
</Stack.Navigator>
);
}
function MyDrawer() {
return (
<Drawer.Navigator drawerContent={props => <CustomDrawerComponent {...props}/>}
drawerStyle={{
backgroundColor: '#fff',width: 200,}}
>
<Drawer.Screen name="Edit Home" component={EditHome} />
<Drawer.Screen name="Edit About" component={EditAbout} />
</Drawer.Navigator>
);
}
export default function App() {
return (
<NavigationContainer>
<MyDrawer/>
</NavigationContainer>
);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。