在react native中单击登录按钮后,我的应用程序立即在android Emulator上崩溃。但在iOS模拟器上运行良好
当点击react native中的登录按钮时,我的多供应商食品订购应用程序在android Emulator上立即崩溃。然而,在iOS模拟器上工作得非常好。当我按下“登录”按钮时,我无法登录。它会立即将我的应用程序退出到emulator正常屏幕。然而,我有很多功能登录,直到用户无法登录,他/她无法做任何事情,如他/她无法下订单或支付相同的订单。然而,我在终端上既没有收到任何错误,也没有收到任何警告。另外,当我尝试在调试模式下启动时,应用程序没有在调试模式下工作,它会崩溃或终止。其他功能工作正常,如添加物品、导航餐厅产品、搜索餐厅、删除购物车中的物品等。下面是登录代码在react native中单击登录按钮后,我的应用程序立即在android Emulator上崩溃。但在iOS模拟器上运行良好,android,ios,react-native,Android,Ios,React Native,当点击react native中的登录按钮时,我的多供应商食品订购应用程序在android Emulator上立即崩溃。然而,在iOS模拟器上工作得非常好。当我按下“登录”按钮时,我无法登录。它会立即将我的应用程序退出到emulator正常屏幕。然而,我有很多功能登录,直到用户无法登录,他/她无法做任何事情,如他/她无法下订单或支付相同的订单。然而,我在终端上既没有收到任何错误,也没有收到任何警告。另外,当我尝试在调试模式下启动时,应用程序没有在调试模式下工作,它会崩溃或终止。其他功能工作正常,
`import React, { useEffect, useContext, useState } from "react";
import { View, Text, StyleSheet, Button } from "react-native";
import FormContainer from "../../Shared/Form/FormContainer";
import Input from "../../Shared/Form/Input";
import Toast from "react-native-toast-message";
import AuthGlobal from "../../Context/store/AuthGlobal";
import { loginUser } from "../../Context/actions/Auth.actions";
const Login = (props) => {
const context = useContext(AuthGlobal);
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
useEffect(() => {
if (context.stateUser.isAuthenticated === true) {
props.navigation.navigate("User Detail");
}
}, [context.stateUser.isAuthenticated]);
const handleSubmit = () => {
const user = {
email,
password,
};
if (email === "") {
Toast.show({
type: "error",
text1: `Email Is required`,
text2: "Please try again",
});
} else if (password === "") {
Toast.show({
type: "error",
text1: `Password is Required`,
text2: "Please try again",
});
} else {
loginUser(user, context.dispatch);
}
};
return (
<FormContainer title={"Login"}>
<Input
placeholder={"Enter Email"}
name={"email"}
id={"email"}
value={email}
onChangeText={(text) => setEmail(text.toLowerCase())}
/>
<Input
placeholder={"Enter Password"}
name={"password"}
id={"password"}
secureTextEntry={true}
value={password}
onChangeText={(text) => setPassword(text)}
/>
<View style={styles.buttonGroup}>
<Button title="Login" onPress={() => handleSubmit()}></Button>
</View>
<View style={[{ marginTop: 40 }, styles.buttonGroup]}>
<Text style={styles.middleText}>Don't have an account yet?</Text>
<Button
title="Sign up"
onPress={() => props.navigation.navigate("Register")}
>
{/* <Text style={{ color: "white" }}>Register</Text> */}
</Button>
</View>
</FormContainer>
);
};
const styles = StyleSheet.create({
buttonGroup: {
width: "80%",
alignItems: "center",
},
middleText: {
marginBottom: 20,
alignSelf: "center",
},
});
export default Login;`
This is the loginUser which i have imported in Login Component
`export const loginUser = (user, dispatch) => {
const { email, password } = user;
axios({
method: "POST",
url: `${baseURL}signin`,
data: { email: email.toLowerCase(), password: password },
})
.then((response) => {
if (response) {
const token = response.data.token;
AsyncStorage.setItem("jwt", token);
const decoded = jwt_decode(token);
dispatch(setCurrentUser(decoded, user));
} else {
logoutUser(dispatch);
}
})
.catch((error) => {
console.log("SIGNIN ERROR", error.response.data.error);
Toast.show({
topOffset: 60,
type: "error",
text1: `${error.response.data.error}`,
text2: "Please Try again! test",
});
});
};`
`import React,{useffect,useContext,useState}来自“React”;
从“react native”导入{视图、文本、样式表、按钮};
从“../../Shared/Form/FormContainer”导入FormContainer;
从“../../Shared/Form/Input”导入输入;
从“react native Toast message”导入Toast;
从“../../Context/store/AuthGlobal”导入AuthGlobal;
从“../../Context/actions/Auth.actions”导入{loginUser}”;
常量登录=(道具)=>{
const context=useContext(AuthGlobal);
const[email,setEmail]=useState(“”);
const[password,setPassword]=useState(“”);
useffect(()=>{
if(context.stateUser.isAuthenticated==true){
道具.导航.导航(“用户详细信息”);
}
},[context.stateUser.isAuthenticated]);
常量handleSubmit=()=>{
常量用户={
电子邮件,
密码,
};
如果(电子邮件==“”){
吐司,表演({
键入:“错误”,
text1:`需要电子邮件',
text2:“请再试一次”,
});
}否则如果(密码==“”){
吐司,表演({
键入:“错误”,
text1:`需要密码',
text2:“请再试一次”,
});
}否则{
登录用户(用户、上下文、分派);
}
};
返回(
setEmail(text.toLowerCase())}
/>
设置密码(文本)}
/>
handleSubmit()}>
你还没有账户吗?
props.navigation.navigate(“注册”)}
>
{/*寄存器*/}
);
};
const styles=StyleSheet.create({
按钮组:{
宽度:“80%”,
对齐项目:“中心”,
},
中文本:{
marginBottom:20,
对准自己:“居中”,
},
});
导出默认登录`
这是我在登录组件中导入的登录用户
`导出常量登录用户=(用户,分派)=>{
const{email,password}=user;
axios({
方法:“张贴”,
url:“${baseURL}签名”,
数据:{email:email.toLowerCase(),密码:password},
})
。然后((响应)=>{
如果(答复){
const token=response.data.token;
AsyncStorage.setItem(“jwt”,令牌);
const decoded=jwt_decode(令牌);
调度(setCurrentUser(已解码,用户));
}否则{
注销用户(调度);
}
})
.catch((错误)=>{
log(“登录错误”,ERROR.response.data.ERROR);
吐司,表演({
地形偏移:60,
键入:“错误”,
text1:`${error.response.data.error}`,
text2:“请重试!测试”,
});
});
};`
请添加一个最小的代码来重现错误。我添加了整个登录组件的代码以及我在登录组件中导入的登录用户功能。到目前为止,您尝试了什么?像那样复制它有点困难。请正确缩进代码,以便其他人对帮助您感兴趣。默认情况下,请在清单文件中重新检查internet权限。