类型“ FetchPeriod”上不存在“状态”属性

时间:2018-06-28 20:37:26

标签: reactjs typescript react-router react-props

我正在尝试按照本教程学习ReactJS: Tutorial

我是编程语言的新手,所以对现在该做什么一无所知。

当我尝试添加“ Fetchemployeeee.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方法在标题中给出了错误,我似乎找不到解决方法。

1 个答案:

答案 0 :(得分:1)

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

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

在没有安装类型的情况下,TS无法正确推断JSX元素所需的道具。