我在使用react useState钩子时遇到了问题。我已经调用了backend-api,并且我想将result设置为userData。
接口调用成功,可以看到console.log(response.data)。{“消息”:“ok”,“数据”:{“id”:1,“姓名”:“hyu”,“出生”:“2000.1.1”,“性别”:0,“备注”:“test”}}
下面是代码。
import React , {useState, useEffect} from 'react';
const [userData, setUserData] = useState("");
useEffect(() => {
const getUser = async () => {
const response = await axios.get('api/babyinfo');
console.log(response.data);
setUserData(response.data);
}
getUser();
},[]);
console.log(userData); // userData is still empty有没有人知道发生了什么,我怎么才能修复它?
发布于 2020-11-20 21:16:07
import React , {useState, useEffect} from 'react';
const [userData, setUserData] = useState([]);
const getUser = async () => {
try {
const response = await axios.get('api/babyinfo');
console.log(response.data);
setUserData(response.data.data);
}catch(err) => {
console.log(err)
}
}
useEffect(() => {
getUser();
},[])现在,您可以对您的状态进行控制台操作,以查看您的状态是否已更新
console.log(userData);发布于 2020-11-20 21:10:55
代码中没有问题,只是您试图将数组作为对象进行访问。
请试试这个
import React , {useState, useEffect} from 'react';
const [userData, setUserData] = useState({});
useEffect(() => {
const getUser = async () => {
const response = await axios.get('api/babyinfo');
setUserData(response.data.data[0]);
}
getUser();
},[]);
return <span>{userData.name}</span>发布于 2020-11-20 20:48:06
在userData中设置初始类型[ ],如下所示
const [userData, setUserData] = useState([]); // herehttps://stackoverflow.com/questions/64929658
复制相似问题