Reactjs 属性在只读{}类型上不存在
我得到以下错误: “类型'Readonly'上不存在属性'items'。并且” “类型'Readonly'上不存在属性'value'。” 我正在尝试创建“添加评论,您可以向上投票和向下投票”。另外,当我刷新页面时,添加的项目不再可用 以下代码正在使用React with typescript:Reactjs 属性在只读{}类型上不存在,reactjs,typescript,jsx,Reactjs,Typescript,Jsx,我得到以下错误: “类型'Readonly'上不存在属性'items'。并且” “类型'Readonly'上不存在属性'value'。” 我正在尝试创建“添加评论,您可以向上投票和向下投票”。另外,当我刷新页面时,添加的项目不再可用 以下代码正在使用React with typescript: Abc.tsx: 导出默认类Abc扩展React.Component{ 建造师{ } 手变(活动){ } 附加项(){ }) this.setState({items:itemsCopy,值:“”});
Abc.tsx:
导出默认类Abc扩展React.Component{
建造师{
}
手变(活动){
}
附加项(){
})
this.setState({items:itemsCopy,值:“”});
}
render(){
返回(
this.addItem()}>Submit
);
}
}
要回答问题的第一部分,您需要明确定义组件状态的类型。你可以通过为它写一封信来做到这一点
接口AbcState{
项目:any[];//用合适的类型替换any
值:字符串;
}
导出默认类Abc扩展React.Component{
//其余的
}
至于数据未被持久化的问题,本地组件状态不会存储超出其生命周期的任何数据。您可以将数据保存在数据库中,也可以将其缓存在本地存储器中。为什么其他用户(教程指南)不必提供界面?这些教程是为TypeScript还是JavaScript编写的?
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>
);
}
}
interface AbcState {
items: any[]; //replace any with suitable type
value: string;
}
export default class Abc extends React.Component<{}, AbcState> {
// the rest
}