开发者问题收集

类型 Readonly { } 上不存在属性

2020-01-16
14694

我收到以下错误:

"Property 'items' does not exist on type 'Readonly<{}>'." and "Property 'value' does not exist on type 'Readonly<{}>'."

我尝试创建“添加可以点赞和点踩的评论”。此外,当我刷新页面时,添加的项目不再可用。

The following code is using React with typescript:

Abc.tsx:


  export default class Abc extends React.Component{

constructor{

}
handleChange(event){

}

addItem(){

  })
  this.setState({items:itemsCopy, value:''});
}




 render(){
   return(
    <div>
      <input value={this.state.value} onChange={this.handleChange.bind(this)} />
      <button onClick = {() => this.addItem()}>Submit</button>
      <PostList postList = {this.state.items} 
                updateScore = {this.updateScore.bind(this)}
                removeItem = {this.removeItem.bind(this)}/>
    </div>
  );
  }
}
1个回答

要回答问题的第一部分,您需要明确定义组件状态的类型。您可以通过为其编写 接口 来实现。

interface AbcState {
  items: any[]; //replace any with suitable type
  value: string;
}

export default class Abc extends React.Component<{}, AbcState> {
 // the rest

}

至于数据未持久化的问题,本地组件状态不会在其生命周期之外存储任何数据。您可以将数据保存在数据库中,也可以将其缓存在本地存储中。

wentjun
2020-01-16