reactjs - Properti 'state' tidak ada pada tipe 'FetchPeriod'


Saya sedang mencoba belajar ReactJS mengikuti tutorial ini: Tutorial

Saya baru dengan bahasa pemrograman ini jadi saya tidak tahu harus berbuat apa sekarang.

Saat saya mencoba menambahkan file "Fetchemployee.tsx", saya mendapatkan kesalahan pada metode this.state.

(TS) Properti 'state' tidak ada pada tipe 'FetchPeriod'

Ini adalah kodenya:

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);
}

Dan kemudian nanti saya memiliki kelas PeriodData:

export class PeriodData {
PeriodId: number = 0;
Description: string = "";
PeriodOwner: string = "";
PeriodName: string = "";}

Metode this.state dan this.setState memberikan kesalahan dalam judul, dan saya sepertinya tidak dapat menemukan solusinya.

Jawaban #1

Salah satu kemungkinan penyebab masalah ini adalah hilangnya definisi tipe React. Oleh karena itu, Anda dapat mencoba untuk menginstalnya:

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

Tanpa tipe yang terpasang, TS tidak bisa secara tepat menyimpulkan props yang diperlukan untuk elemen JSX.

Artikel terkait