在TypeScript中无法识别React Component属性“状态”和“ setState”

时间:2019-10-09 09:04:54

标签: reactjs typescript visual-studio

我正在尝试在带有IIS Express(无Node.js)的Visual Studio 2019上重现此内容:ASP.NET Core: CRUD With React.js and Entity Framework Core。使用NuGet Microsoft.Typescript.MsBuild(3.3.3)编译打字稿文件。 但是编译不会针对Typescript文件运行,因为尽管TypeScript类继承自React.Component,但无法识别属性“ state”和“ setState”(Visual Studio消息“不存在”)。

我尝试将javascript编译更改为Ecma 6/5/2016 ...

    import React from 'react';

    export class GetUser extends React.Component  {
        constructor(props) {
            super(props);
            this.state = ...

在Visual Studio中,this.state用红色下划线标出,因此该文件不会被翻译

2 个答案:

答案 0 :(得分:0)

软件包react没有公开其类型。这意味着打字稿不知道在React.Component中声明了哪些属性或方法。

并且因为它不知道this.state存在,所以显示错误。

为了使短绒棉know知道React.Component的类型,请安装软件包@types/react,例如:

npm install --save @types/react

此外,我没有反应,但是我发现了这个问题:

  

请勿直接更改this.state,因为之后可能会调用setState()   替换您所做的突变。将this.state视为   不变的。

Documentation

答案 1 :(得分:0)

**Please try below code it'll help you to find your error.**


import React from 'react';

        class GetUser extends React.Component  {
            constructor(props){
                super(props);
                this.state = {
                name:'Demo';
            }
        }
        render(){
            return(
                <div>{this.state.demo}</div>
            )
        }
         }

        export default GetUser;