<Input
className='txt-input'
type='text'
placeholder='请输入内容'
value={msgContent}
onInput={this.inputChange.bind(this)}
/>
inputChange (event) {
this.setState({
msgContent: event.detail ? event.detail.value : event
})
}
需要实现双向绑定.
value值不绑定可以解决问题,但无法清空内容,加了防抖动也有问题,特别是输入字母。
应该是bindInput事件里setData的原因。
粘的代码是taro的。
你好解决了吗
两种解决方案,
一、防抖(React编译小程序推荐)
// 防抖参数 const antiShakeTime:number = 600 let timeOut:any = null const changeQuantity = (e:any) => { let { value } = e.detail if(timeOut) { clearTimeout(timeOut) timeOut = null } timeOut = setTimeout(() => { this.setState({ msgContent: value }) },antiShakeTime) }
二、通过小程序提供简易双向绑定(原生小程序推荐)
文档指引:https://developers.weixin.qq.com/miniprogram/dev/framework/view/two-way-bindings.html
至于你的问题是不能清空,输入不准确等并没有遇到过,taro我很少用.bind()应该没什么关系,用箭头函数多一点