我尝试了一些来自select
标签的显示值的东西。
我尝试的第一件事是event.target.value
onChange
。
我尝试的第二件事是event.nativeEvent.value
不可能,所以如果你对我有奇迹!我接受了
所以,如果你愿意,我发布部分代码:
class App extends Component {
constructor(props) {
super(props);
this._createBounds();
this.state = {
value: 'a'
}
}
_createBounds() {
['_handleSubmit', '_renderTasks', '_handleChange']
.forEach((fn) => this[fn] = this[fn].bind(this));
}
_handleChange(event) {
this.setState({ value: event.currentTarget.value }) // I tried before target.value, or nativeEvent.value
}
render() {
return (
<div className="container">
<div className="list-container">
<div className="list-select">
<select
onChange={this._handleChange()}
className="ant-input selectBox"
style={{width: 200}}
placeholder="Select a person"
ref={ref => {
this._select = ref
}}
value={this.state.value}
defaultValue={this.state.value}
>
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
<option value="d">D</option>
<option value="e">E</option>
<option value="f">F</option>
<option value="g">G</option>
<option value="h">H</option>
<option value="i">I</option>
<option value="j">J</option>
<option value="k">K</option>
<option value="l">L</option>
<option value="m">M</option>
<option value="n">N</option>
<option value="o">o</option>
<option value="p">P</option>
<option value="q">Q</option>
<option value="r">R</option>
<option value="s">S</option>
<option value="t">T</option>
<option value="u">U</option>
<option value="v">V</option>
<option value="w">W</option>
<option value="x">X</option>
<option value="y">Y</option>
<option value="z">Z</option>
</select>
</div>
</div>
</div>
);
}
}
答案 0 :(得分:7)
将onChange更改为此。
onChange={this._handleChange}
还可以尝试另一种handleChange方法
handleChange(e) {
let {name, value} = e.target;
this.setState({
[name]: value,
});
}
答案 1 :(得分:1)
import React, { Component } from 'react';
export default class App extends Component {
constructor(props) {
super(props);
this.state = {
value: 'a'
}
}
_handleChange = (event) => {
this.setState({ value: event.target.value })
}
render() {
return (
<div className="container">
<div className="list-container">
<div className="list-select">
<select
onChange={this._handleChange}
className="ant-input selectBox"
style={{ width: 200 }}
placeholder="Select a person"
ref={ref => {
this._select = ref
}}
defaultValue={this.state.value}
>
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
<option value="d">D</option>
<option value="e">E</option>
<option value="f">F</option>
<option value="g">G</option>
<option value="h">H</option>
<option value="i">I</option>
<option value="j">J</option>
<option value="k">K</option>
<option value="l">L</option>
<option value="m">M</option>
<option value="n">N</option>
<option value="o">o</option>
<option value="p">P</option>
<option value="q">Q</option>
<option value="r">R</option>
<option value="s">S</option>
<option value="t">T</option>
<option value="u">U</option>
<option value="v">V</option>
<option value="w">W</option>
<option value="x">X</option>
<option value="y">Y</option>
<option value="z">Z</option>
</select>
</div>
</div>
</div>
);
}
}
您不应该在_handleChange
处理程序中调用onChange
。
value={this.state.value}
defaultValue={this.state.value}
在React的下拉列表中。你要么提供两个中的一个而不是两个。