在react中实现一个简单双向数据绑定
Posted bug收集
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在react中实现一个简单双向数据绑定相关的知识,希望对你有一定的参考价值。
react实现一个简单的双向绑定
首先我们在input中添加一个onChange事件,然后把这个输入框的value绑定到state中
<Input placeholder="商品名" onChange={this.ProductName.bind(this)}
value={this.state.inpValu}/>
constructor(props) {
super(props)
this.state = {
inpValu:""
}
}
这个onChange事件会在这个input的值改变后触发,同时返回值,其中这个值的target下的value就是这个input当前的值,这样的话我们就只需要将这个值设置到state里input的value绑定的值就好了。
ProductName(e){
this.setState({
inpValu:e.target.value
})
}
值得注意的是: 通过setState来修改state的值的话,它是异步的。想要设置完后就获取里面的值需要在它第二个参数中传递一个回调函数,在这个回调中可以获取修改完的值
chongZhi (){
this.setState({ProductName:""},function () {
console.log(this.state.ProductName);
})
}
封装事件处理
constructor(){
super()
this.changeHandle = this.changeHandle.bind(this);
this.state={
name:"",
pwd:"",
email:""
}
}
render(){
let {name,pwd,email} = this.state;
return (
<div>
<input data-key="name" onChange={this.changeHandle} value={name} type="text" />
<input data-key="pwd" onChange={this.changeHandle} value={pwd} type="text" />
<input data-key="email" onChange={this.changeHandle } value={email} type="text"/>
<span>name:{name}</span>
<span>pwd:{pwd}</span>
<span>email:{email}</span>
</div>
)
}
changeHandle(e){
e.preventDefault()
let key = e.target.dataset.key;
this.setState({[key]:e.target.value})
}
更多文章,请关注【bug收集】
以上是关于在react中实现一个简单双向数据绑定的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 和 Qt Quick QML 应用程序中实现简化的双向数据绑定