最近公司的項目選擇了react作為前端開發技術框架,作為一名vue的忠實粉絲也不得不硬着頭皮上了,畢竟要吃飯。只能一邊學習一邊開發了,今天踩的坑是 input輸入框動態綁定數據后不能輸入。查閱了一番終於了解了,先上代碼
import React, {Component, Fragment} from "react"; // 首先還是引入需要使用的組件
class Fire extends Component { constructor(props) { super(props); this.state = { input_value:'', } } rander(){ return( <Fragment> <div> <input type='text' value={this.state.input_value} className='input' /> <button className='add'>新增<button> </div> <Fragment> ) } }
//這便是我動態綁定的數據,然而input框依然不能輸入任何數據
幾經折騰發現React的數據綁定不是這個簡單的,還需要添加監聽時間才行,於是便繼續寫
<input type="text" value={this.state.input_value} onChange={this.input_change.bind(this)} className='input'/>
// 這里使用了onChange事件去監聽this.input_change,並且通過 .bind(this)將constructor傳入到我們的方法中
接下來在render后面繼續寫我們的監聽方法去綁定數據
input_change(e){ this.setState({ input_value:e.target.value }) }
到這里我們就可以隨心所欲的在input框中輸入代碼了
完整代碼如下
import React, {Component, Fragment} from "react";
class Fire extends Component {
constructor(props){
super(props);
this.state={
input_value:'',
list:[],
}
}
render() {
return (
<Fragment>
<div>
<input type="text" value={this.state.input_value} onChange={this.input_change.bind(this)} className='input'/>
<button className='add'>新增</button>
</div>
<ol className='list'>
<li>這是一個待完成事項</li>
<li>這是一個待完成事項</li>
</ol>
</Fragment>
)
};
input_change(e){
this.setState({
input_value:e.target.value
})
}
}
export default Fire
