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

Posted

技术标签:

【中文标题】Next Js & Typescript - 类型上不存在属性 setState 示例【英文标题】:Next Js & Typescript - Property setState does not exist on type Example 【发布时间】: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 仍然有效? 【参考方案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 中的相同问题 => 打开命令面板>“选择打字稿版本”>“使用工作区版本”

【讨论】:

以上是关于Next Js & Typescript - 类型上不存在属性 setState 示例的主要内容,如果未能解决你的问题,请参考以下文章

在带有 TypeScript 的 Next.js 中使用 getInitialProps

如何在带有 TypeScript 的 next.config.js 中使用 i18n 和 next/image?

使用 getStaticProps 获取数据 Next.js 和 Typescript

使用`let cached = global.mongoose`时出现Next.js + Typescript + mongoose错误

Storybook 在 React、Next.JS、Typescript 项目中找不到组件

Next.js:在 getServerSideProps 中使用带有 TypeScript 的 next-redux-wrapper 调用 Thunks?