是什么 !!在复选框的选中属性中?

时间:2018-01-04 08:19:11

标签: javascript reactjs redux

我正忙着在this tutorial上使用React + Redux,我想知道!!用于设置复选框的checked属性时。

render() {
const onClick = () => store.dispatch({type: 'TOGGLE'});
return (
  <div>
    <h1>To dos</h1>
    <div>
      Learn Redux&nbsp;
      <input
        type="checkbox"
        checked={!!this.state.checked}
        onClick={onClick}
      />
    </div>
    {
      this.state.checked ? (<h2>Done!</h2>) : null
    }
  </div>
);

如果你删除!!该组件仍然按预期工作。

如果我离开!!但删除onClick属性然后没有任何反应,因为状态未更改,因此控件永远不会重新呈现。该复选框仍未选中,完成!消息永远不会显示

如果我删除了onClick和!!,则复选框从未选中变为已选中(尽管它被绑定到state.checked默认为false)但状态显然永远不会因为完成而改变!消息将不会显示。

什么是!!在做什么?

1 个答案:

答案 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)

 

这样做是为了检查有效的可处理值。您可以看到所有值都会给出错误值

的代码段