React JS 复选框无法识别第一个切换
React JS checkbox does not recognize the first toggle
我刚刚开始检查和学习 React js,并尝试一些简单的事情。我对一个简单的复选框有问题 - 我创建了一个事件来侦听更改并更新其状态,但问题是应用程序无法识别第一次切换复选框。例如:- 我用默认的检查状态渲染它- 我点击它取消选中它,控制台日志为真(应该是假的)- 我再次单击它以检查它,控制台日志为 true(现在是正确的- 从那里返回正确的状态。
这是我的示例代码:
var CheckboxElement = React.createClass({
handleChange: function(e) {
this.setState({
checked: !e.target.checked
});
console.log(this.state.checked);
},
getInitialState: function() {
return {checked: false};
},
render: function() {
return (
<label><input type="checkbox" defaultChecked={this.state.checked} onChange={this.handleChange} />{this.props.optionVal}</label>
)
}
});
ReactDOM.render(
<CheckboxElement optionVal="Test" />,
document.getElementById('container')
);
这是我的代码的jsFiddle:https://jsfiddle.net/velio84/zro3x9eg/1/
您可以检查浏览器的控制台以查看输出。
任何帮助将不胜感激。
在这种情况下,
您不需要添加!
,因为当您第一次检查时e.target.checked
值将false
(或true
取决于初始状态),并且状态将具有值true
(!false === true
)或false
(!true === false
),正如我所写的,这取决于您为defaultChecked
属性设置的初始值
this.setState({
checked: e.target.checked
});
Example
相关文章:
- 使用数据上的角度更改设置集合的第一个元素的动画
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- 字母计数:返回重复字母数最多的第一个单词
- 如何使用Javascript在HTML表中查找第一个空行
- 分页:如何用AJAX加载第一个页面
- 全局标志仅与第一个匹配项匹配的Regexp
- 访问ng repeat中的第一个项目
- 使用jQuery只返回选中复选框后的第一个表单元格值
- 使用jQuery插入HTML页面的第一个项目缺少结束标记
- 关闭第二个事件源上的第一个事件源's onopen方法
- 无法获取vis.js最后一个或第一个选定的网络节点
- 如何设置第一个手风琴面板关闭
- 使用filter和map方法将数组中某些元素的第一个字母大写-JavaScript
- jQuery空选择,但不是第一个选项
- JavaScript Regex 将单词替换为其第一个字母,除非在括号内
- 在Jquery中选择第一个搜索项而不单击它
- Thunderbird,如何以编程方式选择第一个选项卡
- 第一个字第一个字符第二个字第二个字符,一直到数组结束
- React JS 复选框无法识别第一个切换
- Javascript事件冲突,但不确定如何识别第一个事件分配