React如何動態綁定input框的值


最近公司的項目選擇了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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM