[英]Function return undefined react native
我需要一個登錄 function 來返回一個令牌,但它總是返回未定義的。
src/api/login.js
That is my function
import axios from 'axios';
const linkApi = 'http://localhost/api';
const logIn = async (email, password) => {
const params = new URLSearchParams()
params.append('email', email)
params.append('password', password)
params.append('action', 'LOGIN')
const config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}
await axios.post(linkApi, params, config)
.then(response => {
if(response.data.error === false) {
return response.data.token;
} else {
throw new Error(response.data.message)
};
})
}
export default logIn;
我在這個屏幕上使用 function:
src/views/Login/index.js
import React, { Fragment } from "react";
import { Button, Text } from "react-native";
import { useNavigation } from '@react-navigation/native';
import Container from "../../components/Container";
import Logo from "../../components/Logo";
import StyledInput from "../../components/StyledInput";
import ButtonView from "../../components/ButtonView";
import logIn from "../../api/login";
const screen = () => {
// const navigation = useNavigation();
const [email, setEmail] = React.useState("");
const [password, setPassword] = React.useState("");
const [errorMessage, setErrorMessage] = React.useState("");
const sendRequest = async () => {
try {
const token = await logIn(email, password)
console.warn(token)
} catch (erro) {
setErrorMessage(erro.message)
}
}
return (
<Fragment>
<Container>
<Logo />
<Text style={{ color:"#fff" }}>{errorMessage}</Text>
<StyledInput
placeholder="Usuario"
onChangeText={string => setEmail(string)}
value={email}
keyboardType="email-address"
autoCompleteType="email"
placeholder="Digite seu email"
placeholderTextColor = "#CCC"
/>
<StyledInput
placeholder="Senha"
secureTextEntry={true}
onChangeText={string => setPassword(string)}
value={password}
autoCompleteType="password"
placeholder="Digite sua senha"
placeholderTextColor = "#CCC"
/>
</Container>
<ButtonView>
<Button
title="Entrar"
onPress={sendRequest}
color="#fe9f29"
/>
</ButtonView>
</Fragment>
);
};
export default screen;
但是屏幕上的 const 令牌總是返回 undefined 當我在登錄 function 中執行console.warn(response.data.token)
時,控制台會正常顯示令牌。 請問,誰能幫幫我?
您需要返回axios.post(...
鏈的結果。現在,該 promise 的解析值剛剛被丟棄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.