2016-07-07 69 views
0

我是新手後端開發人員,我的任務是修復某個功能,並將其卡在反應部分。我似乎無法找到合適的語法從選擇組件獲取值,這幾乎是我的整個問題。我已經看過很多其他帖子和反應文檔,但我正在嘗試的是正在工作。標記的一個實例是如下(這裏有許多選擇字段的在此視圖中):反應:從DOM節點中的選擇字段獲取值

<div className="grid-content noscroll medium-6 small-12" style={{overflow: 'visible'}}> 
     <div className="grid-content"><label>Program</label></div> 
     <div className="grid-content" style={{overflow: 'visible'}}> 
     <Select 
      key="program_key" 
      ref="program_key" 
      multi={false} 
      value={ jobData && jobData.program_key ? jobData.program_key : null} 
      options={programOptions} 
      onChange={this.changeField.bind(null, 'program_key')} 
      /> 
     </div> 
    </div> 

然後該事件處理程序如下:

changeField: function(propName) { 
    var field = this.refs[propName].getDOMNode(); 
    console.log(field.input); 
    console.log(field); 
    var nextProp = field.value.length > 0 ? field.value : null; 
    var job = Object.assign({}, this.state.job); 
    job.payload.data[propName] = nextProp; 

    if(propName === 'user_id') { 
    this.changeUserId = true 
    } 

    this.setState({ 
    job: job, 
    updated: false 
    }); 
} 

的console.log(場)的結果是:

<div class="Select is-searchable has-value" data-reactid=".0.0.2.0.1.0.1.1.0.1.1.$program_key"> 
<input type="hidden" value="NHDS" data-reactid=".0.0.2.0.1.0.1.1.0.1.1.$program_key.0"> 

它從那裏繼續,但「價值=‘NHDS’」爲我所需要的部分,我無法弄清楚如何得到它爲我的生活。請讓我知道,如果我能澄清或改善這個問題。提前致謝。

回答

1

根據您的示例代碼,它看起來像您正在使用react-select組件https://github.com/JedWatson/react-select。 onChange將以新改變後的值作爲其道具。在你的情況下,changeField方法有一個綁定參數('program_key'),它將作爲函數的第一個參數被注入。下一個參數應該是選定的值。要測試此功能,您可以在changeField函數內執行console.log(arguments),它應該返回一個帶有'program_key'和新值的數組。如果這樣做只需添加一個名爲newValuechangeField的新參數並在需要時使用它。

編號:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind https://github.com/JedWatson/react-select#further-options

+0

謝謝!完全按照你的說法工作。 – brianfr82