代码之家  ›  专栏  ›  技术社区  ›  user1008636

对提交感到困惑

  •  0
  • user1008636  · 技术社区  · 6 年前

    我有:

    <form onSubmit= {handleSubmit}>
          <div className="form-group">
            <label htmlFor="focusedInput">Level</label>
            <input className="form-control" id="focusedInput" type="number" />               
            <div className="input-group-append">
              <button className="btn " type="submit">Submit</button>
            </div>
          </div>
          </form>
    

    在我的 handleSubmit ,如何将窗体控件(type=“number”)中的值传入props函数? event.target.value 似乎不起作用。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Sameer Reza Khan    6 年前

    您需要使用状态来控制输入。

    例子:

    this.state={
        number :0 //initialise state variable here or in componentWillMount or componentDidMount
    }
    
    handleChange(e){
    // input change handler,extract value from e, update state here.
    this.setState({
        number: e.target.value
    })
    
    handleSubmit(){
        // Use state variable and make ajax call or anything you want with your input here.
    }
    

    您的输入表单将如下所示。

    <input className="form-control" id="focusedInput" type="number" value={this.state.number} onChange={this.handleChange.bind(this)/> 
    //you can bind your function in constructor too.
    

    您的提交按钮将如下所示

    <button className="btn " onClick={this.handleSubmit.bind(this)>Submit</button>
    

    bind(this) 重要的是,您需要在构造器中绑定您的函数,或者如上所述。在构造函数中绑定它时,不需要编写 绑定(此) 在里面 input button

        2
  •  0
  •   Maksim Romanenko    6 年前

    解决这个问题的方法很少:

    1. 将值保存到状态onchange事件中。文档中的好例子 https://reactjs.org/docs/forms.html .

    2. 定义 ref 并在提交时读取值。 https://reactjs.org/docs/refs-and-the-dom.html