我正忙着在this tutorial上使用React + Redux,我想知道!!用于设置复选框的checked属性时。
render() {
const onClick = () => store.dispatch({type: 'TOGGLE'});
return (
<div>
<h1>To dos</h1>
<div>
Learn Redux
<input
type="checkbox"
checked={!!this.state.checked}
onClick={onClick}
/>
</div>
{
this.state.checked ? (<h2>Done!</h2>) : null
}
</div>
);
如果你删除!!该组件仍然按预期工作。
如果我离开!!但删除onClick属性然后没有任何反应,因为状态未更改,因此控件永远不会重新呈现。该复选框仍未选中,完成!消息永远不会显示
如果我删除了onClick和!!,则复选框从未选中变为已选中(尽管它被绑定到state.checked默认为false)但状态显然永远不会因为完成而改变!消息将不会显示。
什么是!!在做什么?
答案 0 :(得分:0)
var t= undefined
var t1= null
var t2= ""
var t3 = false
console.log("t", !!t)
console.log("t1", !!t1)
console.log("t2", !!t2)
console.log("t3", !!t3)
这样做是为了检查有效的可处理值。您可以看到所有值都会给出错误值
的代码段