Javascript 无法访问数组React.js中的对象
当我对数组中的某个元素执行console.log时,它表示未定义,但当我仅对数组的console.log执行时,它会向我提供如下数据 PS我在图表中使用它,但在此之前我需要访问元素 当我对数组中的某个元素执行console.log时,它表示未定义 你没有那样做Javascript 无法访问数组React.js中的对象,javascript,reactjs,Javascript,Reactjs,当我对数组中的某个元素执行console.log时,它表示未定义,但当我仅对数组的console.log执行时,它会向我提供如下数据 PS我在图表中使用它,但在此之前我需要访问元素 当我对数组中的某个元素执行console.log时,它表示未定义 你没有那样做data是数组,因此data。data是数组上名为data的属性,而不是数组中的对象的属性 您必须读取对象的数据属性(或数组中的5个对象中的至少一个),而不是数组的属性 请包括.Is数据数组?如果是这样,它不应该有数据属性(数据.数据)。如
data
是数组,因此data。data
是数组上名为data
的属性,而不是数组中的对象的属性
您必须读取对象的数据
属性(或数组中的5个对象中的至少一个),而不是数组的属性
请包括.Is
数据
数组?如果是这样,它不应该有数据
属性(数据.数据
)。如果没有,则无法调用推送
。您在哪里声明数据
呢?数据
来自哪里?为什么在没有错误的情况下不设置状态(数据)?我用所有infoi did console.log(数据[1])编辑了这篇文章,仍然说undefined@User007-您的编辑显示您记录数据的位置。数据
您现在只记录数据
,而不记录数据[1].data
任何地方。是的,但我也试过了undefined@User007-返回并重新阅读您的代码,我看不到任何方法可以让您获得屏幕截图显示的结果。在组件顶部创建数组,然后有一个useEffect,它会被调用一次(因为依赖项数组是空的),在它里面你会调用数据。推送一次…所以在它里面不能有超过一个项目。它跟踪未定义的数据[1]
,这意味着显示其中5项的屏幕截图没有意义。您需要提供您的问题的描述,并结合您向我们展示的代码版本给出的结果说明。id did console.log(数据)以显示屏幕截图中的内容,当我尝试进入其中时,屏幕截图显示未定义
export default function App() {
const [error, setError] = useState(null);
const [isLoaded, setIsLoaded] = useState(false);
const [items, setItems] = useState([]);
const data = [];
// Note: the empty deps array [] means
// this useEffect will run once
// similar to componentDidMount()
const jwt = sessionStorage.getItem('Token')
const user = jwtDecode(jwt)
const token = sessionStorage.getItem('Token')
useEffect(() => {
fetch("http://localhost:8080/animals/animal/client?clientId=" + user.id, {
method: "get",
headers: {
"Authorization": `${token}`,
},
})
.then(res => res.json())
.then(
(result) => {
var mydata = (result[0].peso)
data.push(mydata)
var isArray = Array.isArray(data);
console.log(data)
},
// Note: it's important to handle errors here
// instead of a catch() block so that we don't swallow
// exceptions from actual bugs in components.
(error) => {
setIsLoaded(true);
setError(error);
}
)
}, [])
console.log(data[someIndex].data)