Reactjs Can’;t在React/Typescript中动态设置状态

Reactjs Can’;t在React/Typescript中动态设置状态,reactjs,typescript,Reactjs,Typescript,我可以设置state in,并使用字符串进行反应,如下所示: 返回( )我想你可能遗漏了什么 这很有效 render() { console.log(this.state.mostPopContentCount); const name = "mostPopContentCount"; return ( <a href="javascript:void(0)" onClick={() => { this.setState(prevState =>

我可以设置state in,并使用字符串进行反应,如下所示:

返回(

)
我想你可能遗漏了什么 这很有效

render() {
console.log(this.state.mostPopContentCount);
const name = "mostPopContentCount";
return (
  <a
    href="javascript:void(0)"
    onClick={() => {
      this.setState(prevState => {
        return { [name]: prevState[name] + 10 };
      });
    }}
  >
    Load 10 more rows
  </a>
);
}
render(){
log(this.state.mostPopContentCount);
const name=“mostPopContentCount”;
返回(
);
}
这不是使用typescript, 如果它对您没有帮助,请创建一个沙盒,以便轻松调试


希望它有帮助

这是因为ts,没有看到状态的类型,也没有识别出密钥存在。您必须创建一个类型为any的副本

  return(
    <a href="javascript:void(0)" onClick={        
        () => {
            this.setState(prevState => {
              let stateCopy:any={...prevState};
              stateCopy[name]: stateCopy[name] + 10
              return {stateCopy}
            })
        }
    }>
      Load 10 more rows
    </a>  
  )
返回(
)

。您也可以为您的状态定义类型。此.setState((prevState:any)=>{yes)尝试了该类型的-Argument'(prevState:any)=>{stateCopy:any;}不可分配给types的参数似乎与“return stateCopy”一起工作,而不是与destructed一起工作?是的,仅与stateCopy一起返回,新状态将是stateCopy。