“FetchPeriod”类型上不存在属性“状态”
Posted
技术标签:
【中文标题】“FetchPeriod”类型上不存在属性“状态”【英文标题】:Property 'state' does not exist on type 'FetchPeriod' 【发布时间】:2018-12-08 00:12:12 【问题描述】:我正在尝试按照本教程学习 ReactJS: Tutorial
我是编程语言的新手,所以我不知道现在该做什么。
当我尝试添加“Fetchemployee.tsx”文件时,this.state
方法出现错误。
(TS) 类型“FetchPeriod”上不存在属性“状态”
这是代码:
import * as React from 'react';
import RouteComponentProps from 'react-router';
import Link, NavLink from 'react-router-dom';
interface FetchPeriodDataState
periodList: PeriodData[];
loading: boolean;
export class FetchPeriod extends React.Component<RouteComponentProps<>, FetchPeriodDataState>
constructor(props)
super(props);
this.state = periodList: [], loading: true ;
fetch('api/Period/Index')
.then(response => response.json() as Promise<PeriodData[]>)
.then(data =>
this.setState( periodList: data, loading: false );
);
// This binding is necessary to make "this" work in the callback
this.handleDelete = this.handleDelete.bind(this);
this.handleEdit = this.handleEdit.bind(this);
后来我有了 PeriodData 类:
export class PeriodData
PeriodId: number = 0;
Description: string = "";
PeriodOwner: string = "";
PeriodName: string = "";
this.state
和 this.setState
方法给出了标题中的错误,我似乎找不到修复方法。
【问题讨论】:
你安装了 React 类型吗?@types/react
你确定构造函数中的状态初始化行给你错误吗?发布给出错误的确切行(以及上下文)
很抱歉,我在哪里可以查看?在 Package.json 中?
是的,请确保您在dependencies
或devDependencies
中的package.json
中列出了@types/react
。
嗨 Cristy,请看下图:Link
【参考方案1】:
问题的一个可能原因是缺少 React 类型定义 因此,您可以尝试安装它们:
npm install --save-dev @types/react @types/react-dom
如果没有安装类型,TS 无法正确推断 JSX 元素所需的道具。
【讨论】:
以上是关于“FetchPeriod”类型上不存在属性“状态”的主要内容,如果未能解决你的问题,请参考以下文章
类型“typeof ...”上不存在属性“use”,类型“typeof”上不存在属性“extend”