antd Input 不能用setState了为什么??

onchangeGoodR=(e)=>{
    console.log(e.target.value)
    this.setState({
       GoodRValue : e.target.value
    })
}
<Input 
    style={{flex:"1",marginLeft:"5px",}} 
    size="small" 
    defaultValue={item.classGoodRemind} 
    onChange={this.onchangeGoodR} 
    onFocus={this.onFocusGoodR} 
    onBlur={()=>this.onBlurGoodR(item)} 
/>

不知道什么原因! 这里的输入框 输不进东西!
太可怕了
只要把this.setState这段去掉就可以输入
同一个页面的Input就是这样子写的为什么这里就不能用了呢??

阅读 3.6k
2 个回答

defaultValue只是初始化显示的值
显然你想要input变成一个受控组件,那就必须给他赋值。

onchangeGoodR=(e)=>{
    console.log(e.target.value)
    this.setState({
       GoodRValue : e.target.value
    })
}

现在GoodRValue已经被赋值成功
你只不过是没给到回显,如楼上所说
Input 上加上value={this.state.GoodRValue}

<Input 
    style={{flex:"1",marginLeft:"5px",}} 
    size="small" 
    value={this.state.GoodRValue}
    defaultValue={item.classGoodRemind} 
    onChange={this.onchangeGoodR} 
    onFocus={this.onFocusGoodR} 
    onBlur={()=>this.onBlurGoodR(item)} 
/>

就OK了!

Input 上加上 value={this.state.GoodRValue}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题