答案 0 :(得分:0)
如果您使用的是React(或其他任何JavaScript框架),那么您实际上应该使用由其他开发人员创建的现成的NPM软件包来为您完成
例如,有react-select或React Select Plus;还有很多其他的。在上述每个程序包中,您将找到如何生成带有选项列表的select以及它们如何解决处理对选定值所做的更改的问题。
简而言之,除非绝对必要,否则不要重新发明轮子。
此外,这些软件包鼓励您分别渲染(和处理)表单的每个元素,从而更易于理解。
答案 1 :(得分:0)
可以用e.options[e.selectedIndex].value
找到一个选定的选项。在react component方法中,您需要改为使用e.target
。
这是一个例子。类似于您的代码,handleChange
select
事件被触发时将调用onChange
。
class Select extends React.Component {
handleChange(e) {
// Grab the value from the selected index (option)
const { value } = e.target.options[e.target.selectedIndex];
console.log(value);
}
render() {
const { options } = this.props;
return (
<select onChange={this.handleChange}>
{options.map((option, i) => {
return <option key={i} value={option}>{option}</option>
})}
</select>
)
}
}
const options = [
'drink', 'eat', 'dance', 'drive'
];
ReactDOM.render(
<Select options={options} />,
document.getElementById('container')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="container"></div>