“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.statethis.setState 方法给出了标题中的错误,我似乎找不到修复方法。

【问题讨论】:

你安装了 React 类型吗? @types/react 你确定构造函数中的状态初始化行给你错误吗?发布给出错误的确切行(以及上下文) 很抱歉,我在哪里可以查看?在 Package.json 中? 是的,请确保您在dependenciesdevDependencies 中的package.json 中列出了@types/react 嗨 Cristy,请看下图:Link 【参考方案1】:

问题的一个可能原因是缺少 React 类型定义 因此,您可以尝试安装它们:

npm install --save-dev @types/react @types/react-dom

如果没有安装类型,TS 无法正确推断 JSX 元素所需的道具。

【讨论】:

以上是关于“FetchPeriod”类型上不存在属性“状态”的主要内容,如果未能解决你的问题,请参考以下文章

类型“typeof ...”上不存在属性“use”,类型“typeof”上不存在属性“extend”

TypeScript:类型“”上不存在属性

状态上不存在属性 - 使用带有 TypeScript 的 React Router Hooks

错误 TS2339:类型“”上不存在属性“包含”

类型“”上不存在属性“forEach”

类型“T”上不存在属性 - 一般问题