gpt4 book ai didi

javascript - react : get value from a select field in a DOM node

转载 作者:行者123 更新时间:2023-12-03 06:35:15 25 4
gpt4 key购买 nike

我是一名新手后端开发人员,我的任务是修复一个功能,但我陷入了 react 部分。我似乎找不到合适的语法来从选择组件中获取值,这几乎是我的全部问题。我看过很多其他帖子和 react 文档,但我所做的一切都不起作用。标记示例如下(此 View 中有很多选择字段):

   <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(field)的结果是:

<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">

它从那里继续,但“value =“NHDS””是我需要的部分,但我无法弄清楚如何在我的一生中找到它。如果我可以澄清或改进这个问题,请告诉我。提前致谢。

最佳答案

根据您的示例代码,您似乎正在使用 react 选择组件 https://github.com/JedWatson/react-select 。 onChange 将以新更改的值作为其 prop 触发。在您的情况下, changeField 方法有一个绑定(bind)参数('program_key'),它将作为函数的第一个参数注入(inject)。下一个参数应该是选定的值。要测试这一点,您可以在 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

关于javascript - react : get value from a select field in a DOM node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38254601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com