以形式反应访问儿童

时间:2014-09-24 11:35:51

标签: javascript forms reactjs ref

我无法真正访问组件中动态生成的子项。我在互联网上发现了一些案例,这似乎是一个常见的问题,但我无法正确联系或者记录不是很好,所以我更加困惑。

我有一个带有按钮的表单,每次按下按钮,子表单都会添加到表单中。

render: function() {
  var prop_forms = [];
  for(var i = 1; i <= this.state.count; i++){
    prop_forms.push(<App.Form.Property reference={i}/>);
  }
  return(
    <div>
      <h2>New model</h2>
      <form className="form" callback={this.submited}>
        <label>Name:</label>
        <input type="text" ref="name" className="fancy_input" required/>
        <label><input type="checkbox" ref="include_endpoints"/> Include basic endpoints</label>
        <h3>Properties <a onClick={this.add_property}><span className="glyphicon glyphicon-plus"></span></a></h3>
        {prop_forms}
        <button className="btn" onClick={this.submited} type="button">Add model to the canvas</button>
      </form>
    </div>
  );
}

每次单击一个按钮时,this.state.count都会递增,因此我再获得一个App.Form.Property组件。我传递的是i变量,所以我可以在App.Form.Property组件的ref参数中使用它。

render: function(){
  var input_ref = "property_"+this.props.reference+"_input";
  var select_ref = "property_"+this.props.reference+"_select";
  return(
    <div className="property_form">
      <input className="fancy_input" ref={input_ref} type="text" placeholder="Property name..."/>
      <select className="fancy_select" ref={select_ref}>
        <option value="string">String</option>
        <option value="integer">Integer</option>
        <option value="double">Double</option>
      </select>
    </div>
  );
}

我的问题是,当我提交表格时,我无法通过参考访问孩子。我只能在App.Form.Property组件中找到name和include_endpoints但没有任何内容。

1 个答案:

答案 0 :(得分:0)

在表单组件中添加一个函数getSubmitData,该函数封装外部元素

中的子元素