我是一名新手后端开发人员,我的任务是修复功能,而且我被困在反应部分。我似乎找不到合适的语法来从select组件中获取值,这几乎是我的整个问题。我已经查看了很多其他帖子和反应文档,我尝试的任何内容都没有效果。标记的示例如下(此视图中有许多选择字段):
<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">
它从那里继续但是&#39;值=&#34; NHDS&#34;&#39;是我需要的部分,我无法弄清楚如何在我的生命中找到它。如果我能澄清或改进这个问题,请告诉我。提前谢谢。
答案 0 :(得分:1)
根据您的示例代码,您似乎正在使用react-select组件https://github.com/JedWatson/react-select。 onChange将以新的改变值作为其支柱。在您的情况下,changeField
方法具有绑定参数(&#39; program_key&#39;),它将作为函数的第一个参数注入。下一个参数应该是选定的值。要对此进行测试,您可以在console.log(arguments)
函数中执行changeField
,它应该返回一个带有&#39; program_key&#39;的数组。和新的价值。如果可以的话,只需向名为changeField
的{{1}}添加一个新参数,并在需要时使用它。
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind https://github.com/JedWatson/react-select#further-options