Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Undefined不是对象(评估';users.map';)反应本机_Javascript_Reactjs_Dictionary - Fatal编程技术网

Javascript Undefined不是对象(评估';users.map';)反应本机

Javascript Undefined不是对象(评估';users.map';)反应本机,javascript,reactjs,dictionary,Javascript,Reactjs,Dictionary,你好,不知什么原因,当我试图映射通过另一个组件传递的状态时,我得到了这个未定义的错误不是一个对象('evaluation user.map'),我不知道为什么 import React,{useState,useffect}来自“React”; 从“react native”导入{样式表、文本、视图、图像、滚动视图}; 从“../../molecles/Card”导入卡片; 从“Axios”导入Axios; 常量主屏幕=()=>{ const[users,setUsers]=useState(

你好,不知什么原因,当我试图映射通过另一个组件传递的状态时,我得到了这个未定义的错误不是一个对象('evaluation user.map'),我不知道为什么

import React,{useState,useffect}来自“React”;
从“react native”导入{样式表、文本、视图、图像、滚动视图};
从“../../molecles/Card”导入卡片;
从“Axios”导入Axios;
常量主屏幕=()=>{
const[users,setUsers]=useState([]);
useffect(()=>{
//取回
//取('https://reqres.in/api/users')
//.then(res=>res.json())
//.then(json=>setUsers(json.data));
//Axios
Axios.get()https://jsonplaceholder.typicode.com/users)。然后(res=>
设置用户(res.data.data),
);
}, []);
返回(
用户列表
{users.map(项=>(
))}
);
};
导出默认主屏幕;
const styles=StyleSheet.create({
容器:{
弹性:1,
水平方向:15,
paddingTop:20,
},
标题:{
尺寸:36,
重量:'700',
},
卡片:{
玛金托普:15,
对齐项目:“居中”,
},
姓名:{
尺码:18,
重量:'700',
},
电邮:{
尺寸:16,
颜色:“灰色”,
玛金托普:10,
},
图片:{
身高:150,
宽度:150,
玛金托普:10,
},
});

测试代码res.data.data不存在后,应将状态设置为res.data

您的问题是URL
https://jsonplaceholder.typicode.com/users
返回一个用户数组。这意味着
res.data
将生成用户数组

数组没有
data
属性,因此
res.data.data
将导致
未定义。改用
setUsers(res.data)

当前响应具有以下结构:

[«用户»]
setUsers(res.data.data)
只有在响应具有以下结构时才有效:

{“数据”:[«用户»]}

原因是,当组件第一次呈现时,在
useffect()
可以获取数据之前,
users
是一个空数组,因此
item
是未定义的。快速修复方法可以是将
users.map(item=>(…
替换为
users.length&&users.map(item=>(…
。更好的修复方法是使用状态跟踪组件是否正在加载用户,并根据需要显示加载程序或用户列表。
  useEffect(() => {
    //Fetch
    // fetch('https://reqres.in/api/users')
    //   .then(res => res.json())
    //   .then(json => setUsers(json.data));
    //Axios
    Axios.get("https://jsonplaceholder.typicode.com/users").then((res) =>
      console.log(res.data)
    );
  }, []);