【发布时间】:2021-03-26 03:04:49
【问题描述】:
使用带有 TypeScript 的 Axios 处理来自 HTTP 请求的响应时遇到问题。我不明白我看到的行为。这会返回一次位置,然后当我刷新页面时它再次不起作用,它说 TypeError: Cannot read property 'location' of undefined 我感觉我不明白这一切是如何工作的。
我要做的就是访问从 API 返回的所有数据。如果有人有使用 TypeScript 的简单示例,我将不胜感激。我可以在普通的 JavaScript 中执行此操作,但无法将其转换为 TypeScript。我的问题类似于这个post
const Webmap: FC = () => {
const url = 'https://data.police.uk/api/crimes-street/all-crime?lat=52.629729&lng=-1.131592&date=2019-10';
interface User {
id?: any;
location?: any;
}
const [users, setUserList] = useState<User[]>([]);
useEffect(() => {
axios.get<User[]>(url)
.then(response => {
// console.log(response.data);
setUserList(response.data);
});
}, [])
console.log(users[0].location)
【问题讨论】:
-
请记住,所有 JavaScript 也是有效的 TypeScript。如果您在 JavaScript 中有一个有效的解决方案,那么它也可以用作 TypeScript 中的一个有效解决方案。因此,这些情况下的问题通常是一些拼写错误/复制粘贴错误。
-
@AlexWalker 好吧,我在 JavaScript 中使用的解决方案没有使用 Axios,而是使用了 swr。我遇到了这个 const fetcher = (...args) => fetch(...args).then(response => response.json()); 的问题TypeScript 抱怨 Expected 1-2 arguments,但得到了 0 个或更多。 TS2556 我不知道如何解决这个错误,所以我正在尝试另一种解决方案。
标签: javascript reactjs typescript axios