【发布时间】:2021-03-11 15:36:12
【问题描述】:
我获取并获取数据,我想使用 setState 作为数组或对象将其保存到状态,以便我可以调用返回部分中的每个字段并将其显示在屏幕上
但我收到此错误:
未捕获的错误:对象作为 React 子项无效(找到:对象 带键{性别,姓名,位置,电子邮件,登录,出生日期,注册, 电话、手机、身份证、图片、nat})。如果你打算渲染一个集合 的孩子,使用数组代替
import {useState} from 'react'
export default function Test(){
const [data, setData] = useState([]);
const getInfo = async () =>{
const response = await fetch('https://randomuser.me/api');
if(response.status === 200){
const res = await response.json();
setData(res.results[0]);
// also try this: setData(res)
// also try this: setData(res.result)
}else{
throw new Error('Unable to fetch data')
}
}
return(
<div>
<button onClick={() =>{getInfo()}}>fetch data</button>
{data}
</div>
)
}
【问题讨论】:
-
console.log(res.results[0])的结果是什么?
-
{getInfo()}被解释为一个对象。去掉花括号,改用<button onClick={getInfo}>fetch data</button>。 -
@BlackMath
const getInfo = async () =>{我不这么认为——这声明了一个函数 -
为什么不呢?这当然是一个功能@Antax
标签: javascript reactjs react-native