0
状態に応じて入力値を変更します。以下のコードは、handleChange()
メソッドを手動でトリガーします。これは入力ボックスで機能しますが、select
ボックスを更新するにはこれを行う方法を理解できません。React:入力値が状態によって変更された場合、onChangeをトリガして選択要素を更新します。
私は以下を試みましたが、うまくいかなかった。
ev = new Event("option", { bubbles: true });
el = ReactDOM.findDOMNode(node);
以下の完全なコードを参照してください:
class App extends React.Component {
constructor(props) {
super(props)
this.state = {
value: "random text",
country: "USA"
}
}
handleChange (node, value) {
if(typeof value === "object") {
this.setState({
country: value.target.value
});
} else {
this.setState({value: 'another random text'})
}
var event = new Event('input', { bubbles: true });
this.myinput.dispatchEvent(event);
}
render() {
return (
<div>
<input value={this.state.value} onChange={(e) => {this.handleChange(e)}} ref={(input)=> this.myinput = input}/>
<select onChange={(e) => {this.handleChange(e)}} name="country">
<option>USA</option>
<option>Mexico</option>
</select>
</div>
)
}
}
ReactDOM.render(<App />, document.getElementById('app'))