【发布时间】:2022-12-05 05:10:31
【问题描述】:
尝试使用此代码访问我的 api 数据时:
const lastActivity = data[data.length - 1];
console.log(lastActivity);
const lastActivityTime = lastActivity.time;
console.log(lastActivityTime);
它最初有效,然后当我刷新页面时出现此错误:
未捕获的类型错误:无法读取未定义的属性(读取 xxx)
我也尝试将该代码放入 useEffect 块的不同区域,但没有成功。
这是组件的代码
import { React, useState, useEffect } from 'react'; import { Typography } from '@mui/material'; import { fToNow } from '../../../utils/formatTime'; export default function TimeSince() { const [data, setData] = useState([]); useEffect(() => { fetch(`http://localhost:3000/record`) .then((response) => response.json()) .then((usefulData) => { console.log(usefulData); setData(usefulData); }) .catch((e) => { console.error(`An error occurred: ${e}`); }); }, []); console.log(data); const lastActivity = data[data.length - 1]; console.log(lastActivity); const lastActivityTime = lastActivity.time; console.log(lastActivityTime); return ( <Typography variant="h4" sx={{ color: 'text.secondary' }}> test </Typography> ); }接口代码:
[{"_id":"6383a78ef07f0c12aac4521f","日期":"2022-11-28","时间":"03:08","活动":"步行"},
我假设这是页面呈现时无法访问值的问题?但是在它获得值后我把它扔进了一个 then 块,但仍然不起作用。
【问题讨论】:
标签: javascript reactjs api backend