pmi*_*nda 4 javascript setstate reactjs
我有两个<select>输入。我想将属性设置为“禁用”其中一个的特定值选项<select>。
第一个是:
<select ref="selectOption">
<option selected value="1" >Option 1</option>
<option value="2" >Option 2</option>
</select>
<select ref="selectTime" disabled={this.state.disabled}>
<option value="a" >January</option>
<option value="b" >Febreaury</option>
</select>
Run Code Online (Sandbox Code Playgroud)
所以,我的想法是<select>当第一个选项值 = 2 时将第二个的状态设置为 false<select>
我该怎么做?还是有另一种没有反应的方法我可以做到?还是带道具?我很困惑。我试图做这样的事情:
var option= ReactDom.findDOMNode(this.refs.selectOption).value;
if( option == '2' ) this.setState({disabled:true});
Run Code Online (Sandbox Code Playgroud)
但它不起作用。试图将它放在 componentDidUpdate 中,但是当我从选择中选择一个新值时组件没有更新,所以这不起作用。想法请。
编辑:
我也有 jquery 的这个解决方案,但我想使用 Reactjs。
$('#selectOption').change(function() {
$('#selectTime').prop('disabled', false);
if ($(this).val() == '2') {
$('#selectTime').prop('disabled', true);
}
})
Run Code Online (Sandbox Code Playgroud)
我很困惑如何使用 ReactDom.findDOMNode(this.refs.selectOption) 而不是 jquery 选择器
这是一个关于如何完成此操作的最小示例,将onChange事件处理程序添加到您的第一个选择中,setState在基于值的事件处理程序中:
handleChange(event) {
let value = event.target.value;
this.setState({
disabled: value == '2'
});
}
render() {
return (
<div>
<select ref="selectOption" onChange={(e) => this.handleChange(e)}>
<option selected value="1" >Option 1</option>
<option value="2" >Option 2</option>
</select>
<select ref="selectTime" disabled={this.state.disabled}>
<option value="a" >January</option>
<option value="b" >Febreaury</option>
</select>
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14566 次 |
| 最近记录: |