财产"价值"在Readonly类型上不存在

时间:2018-02-19 15:33:05

标签: reactjs typescript

我正在学习如何使用React作为前端和spring作为后端来开发应用程序。在开发示例应用程序时,我遇到了如下错误:

       `(26,28): Property "value" does not exist on type 'Readonly<{}>`

此错误是从我的App.tsx文件生成的,该文件包含JSX中的React Components定义。 具有状态&#34;值&#34;的类组件;定义如下。

class App extends React.component{
        constructor(props:any) {
             super(props);
             this.state = {
             value:[],
             isLoading:false
          };
       }
        ...
25      render(){
26        const value = this.state.value;
27        const isLoading = this.state.isLoading;
          ... 
    }
   }//End of Class*

我不明白什么是错的。有人可以帮助我从不同的角度看待它,以便能够以不同的方式解决这个问题吗?

3 个答案:

答案 0 :(得分:8)

您是否为state声明了一个界面?

查看Hello React and TypeScript,其中显示了使用React Components接口的示例。

我怀疑你错过了这样的事情:     接口IMyComponentProps {         someDefaultValue:string     }

interface IMyComponentState {
    someValue: string
}

class App extends React.Component<IMyComponentProps, IMyComponentState> {
  // ...
}

答案 1 :(得分:3)

请按以下说明尝试

class App extends React.component<{},any>{ //your code}

答案 2 :(得分:1)

    export default class ReactTodoWebpart extends React.Component<IReactTodoWebpartProps,any> {
  /**
   *
   */
  constructor(props:IReactTodoWebpartProps) {
    super(props);
    this.state={
      todoItems:[]
    };
    this.props.todoClient.getItems().then(resolvedItems=>{
      this.setState({
        todoItems: resolvedItems,

      })
    });

  }
// I also face this issue and fixed it by using any in the second argument