我试图按照一个教程来学习react-in-type脚本。然而,当我构建我的解决方案时,我会发现错误。密码
import React, { useState, useEffect } from 'react';
import axios from 'axios';
const DataFetching = () => {
const [posts, setPosts] = useState([]);
useEffect(() => {
axios.get('https://jsonplaceholder.typicode.com/posts')
.then(res => {
console.log(res)
setPosts(res.data)
})
.catch(err => {
console.log(err)
})
})
return (
<div>
<ul>
{posts.map(post => (<li key={post.id}>{post.title}</li>))}
</ul>
</div>
);
};
export default DataFetching;
我得到的错误
TypeScript error in src/DataFetching.tsx(21,43):
Property 'id' does not exist on type 'never'. TS2339
我遵循以下教程https://www.youtube.com/watch?v=bYFYF2GnMy8 . 任何帮助或指导都将不胜感激
您应该明确地将类型添加到useState
。当您提供空数组类型时,脚本将推断其类型为never[]
。
const[posts,setPosts]=useState
您应该始终指定状态变量的类型
。在这种情况下,您使用的是一个帖子数组。因此,您必须创建一个Post接口,并在useState
中使用该类型。
import React, { useState, useEffect } from 'react';
import axios from 'axios';
interface Post {
id: number;
title: string;
}
const DataFetching = () => {
const [posts, setPosts] = useState<Post[]>([]);
useEffect(() => {
axios.get('https://jsonplaceholder.typicode.com/posts')
.then(res => {
console.log(res)
setPosts(res.data)
})
.catch(err => {
console.log(err)
})
})
return (
<div>
<ul>
{posts.map(post => (<li key={post.id}>{post.title}</li>))}
</ul>
</div>
);
};
export default DataFetching;
我使用的是完全修补过的Visual Studio 2013。我正在尝试使用JQuery、JQueryUI和JSRender。我也在尝试使用打字。在ts文件中,我得到如下错误: 类型“{}”上不存在属性“fade div”。
我试图在登录过程后获得连接的用户模型, 首先,在CanActivate guard检查了带有用户JSON对象的本地存储并发现该对象为空之后,用户将重定向到“/login”URL 然后用户登录并重定向回根URL“/”,在连接过程中我使用AuthService,它将从服务器返回的用户对象保存在用户模型中 这是我的守卫:
升级到Angular 6.0和Rxjs到6.0后,我收到以下编译错误:
获取错误:(类型窗口中不存在属性“MktoForms2”
我试图在TypeScript中使用“时刻-持续时间格式”,但即使它有效,webpack仍不断抱怨它无法在线找到“格式”方法: 这里是package.json tsconfig.json: 在(angular2)组件中: 我也试过了 但这并不能改变什么: [at-loader]./src/app/组件/建筑/商店/shop.component.ts:190中的错误:81 TS2339:属性“格式”在
嗨,我正在使用Angular 2 final和router 3.0。我想过滤从 我想做的是: 可以是instanceOf,或,但我只想要。但是我得到一个错误