Next Js&Typescript-类型示例上不存在属性setState

代码工作正常,但我不知道如何在VSCode中删除此错误。感谢帮助。

import * as React from 'react';

interface State {
  text: string;
}
export default class Example extends React.Component<State> {
 state: State = {
    text: 'SOME TEXT'
}

private handleChange = () => {
    this.setState({text: 'New Text'}); //error: property setState does not exist on type Example
}

public render(){
    return(
        <div>
        <h2 onClick={this.handleChange}>{this.state.text}</h2>
        </div>
    )
 }
}
泡芙猴子2020/03/23 22:07:57

首先,请确保您已安装反应类型定义:

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

其次,状态的泛型仅次于第二。第一个是道具。

export default class Example extends React.Component<{}, State> {

查看React类型定义以验证这一点(转到上的定义Component)。<P, S>表示道具,然后陈述。

class Component<P, S> {
小胖2020/03/23 22:07:57

我只是通过更改使用的 TypeScript的版本来解决VSCode中的相同问题=>打开命令面板>“选择 TypeScript版本”>“使用工作区版本”