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

时间:2018-06-23 18:01:40

标签: javascript reactjs typescript babeljs nextjs

代码工作正常,但是我不知道如何在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>
    )
 }
}

2 个答案:

答案 0 :(得分:1)

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

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

其次,通用的状态为第二,而不是第一。第一个是道具。

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

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

class Component<P, S> {

答案 1 :(得分:1)

我仅通过更改使用的打字稿的版本就解决了VSCode中的相同问题 =>打开命令面板>“选择打字稿版本”>“使用工作空间版本”