【问题标题】:Next Js & Typescript - Property setState does not exist on type ExampleNext Js & Typescript - 类型上不存在属性 setState 示例
【发布时间】:2018-12-02 20:48:26
【问题描述】:

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

【问题讨论】:

  • 所以即使它给你错误,setstate 仍然有效?

标签: javascript reactjs typescript babeljs nextjs


【解决方案1】:

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

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

其次,state 的泛型排在第二位,而不是第一位。第一个是道具。

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

查看 React 类型定义以验证这一点(转到 Component 上的定义)。 &lt;P, S&gt; 表示道具,然后是状态。

class Component<P, S> {

【讨论】:

  • 解决了。随着添加 npm install @types/react @types/react-dom 谢谢伙计。
  • 这应该是一个绿色勾号!
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2018-08-17
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 2021-04-09
    • 2019-06-28
    • 1970-01-01
    相关资源
    最近更新 更多