Свойство 'state' не существует для типа 'FetchPeriod' - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь выучить ReactJS, следуя этому уроку: Учебник

Я новичок в языке программирования, поэтому не знаю, что делать сейчас.

Когда я пытаюсь добавить файл "Fetchemployee.tsx", я получаю ошибку при методе this.state.

(TS) Свойство 'state' не существует для типа '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 дают ошибки в названии, и я не могу найти решение.

1 Ответ

0 голосов
/ 15 марта 2019

Одной из возможных причин проблемы является отсутствие определений типа React. Поэтому попробуйте установить их:

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

Без установленных типов TS не может правильно вывести реквизиты, необходимые для элементов JSX.

...