如何在react js中获取Select Box(它是一个组件)的值
How to get value of Select Box (which is a component) in react js?
我已经创建了SELECT下拉式可重用组件,我通过导入该组件在不同页面的表单中使用该组件。如何在提交表格时获得选择的值?
import React from 'react';
export default class Combobox extends React.Component {
render() {
return (
<div className="combobox-wrapper">
<select className="form-control">
{
this.props.combolist.map(function(item, i) {
return (
<option key={i} value={item.name}>{item.name}</option>
)
})
}
</select>
</div>
);
}
}
import React from 'react';
import Combobox from '../components/Combobox';
export default class Home extends React.Component {
submit(event){
//how to get combobox (Select list) value here
}
render() {
var comboList = [{name: 'Self'},{name: 'Mother'},
{name: 'Father'},{name: 'Domestic Partner'}];
return (
<div>
<div className="col-lg-10 col-md-10 col-sm-10 marginTop20">
<form ref="form" onSubmit={this.submit.bind(this)} >
<div className="row">
<Combobox combolist={comboList} />
</div>
<div className="row">
<input type="submit" value="submit"
className="btn btn-primary" />
</div>
</form>
如果要使用refs引用选择框,则需要为其指定一个名称。
https://codepen.io/jzmmm/pen/AXaZPp?editors=0011
您的组合框:
<Combobox name="mySelect" combolist={comboList} />
在您选择的组件中添加名称:
<select name={this.props.name} className="form-control">
然后要获得值,您的提交函数:
submit(event){
event.preventDefault();
console.log(this.refs.form.mySelect.value)
}
我建议添加自定义函数PropType,每次用户选择新选项时都会调用它。
首先,将其添加到您的组合框中。
ComboBox.propTypes = {
onOptionChange: React.PropTypes.func.isRequired
}
然后,使option
可点击,并让它调用传递的函数。更改:
<option key={i} value={item.name}>{item.name}</option>
至
<option key={i} value={item.name} onClick={(e) => this.props.onOptionChange(item)>{item.name}</option>
当然,将函数传递给ComboBox
,如下所示:
<ComboBox combolist={combolist} onOptionChange={this.onOptionChange.bind(this)} />
现在,每当用户单击任何<option>
时,都会调用包含相应项目的onOptionChange
函数。(当然,您需要在Home
组件中实现它。
相关文章:
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 在下拉列表中选择一个选项的值
- RxjsObservable:通过一个API调用订阅不同的值
- 如果满足某些条件,我如何才能创建一个只有值的对象
- 使用一个表达式将两个变量分配给相同的值
- 如何将自动完成的值传递到另一个函数中
- 使用reactjs setState回调获取上一个输入值的计算值
- 如何将src的值放在一个输入中,然后在另一个页面上显示它
- 如何在另一个任务中正确使用延迟的gump任务返回的值
- 将两个变量的值加在一个变量中
- 一个文本框,其中两个选项的值不同
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 尝试在一个对象的值和一个对象数组之间进行匹配
- NodeJS:创建一个hash并返回一个函数的值
- setinterval函数,使用变量的前一个/旧值
- 试图检查表单中的值是否为一个设定范围内的数字
- 通过AJAX将从AJAX获取的值发送到另一个PHP文件
- 使用一个输入作为两个按钮的值
- 在一个控制器中更新服务变量,并在另一个控制器 - Angular JS中使用更新的值
- 如何仅比较和更改其中一个的值