Javascript 复选框don';不显示支票

Javascript 复选框don';不显示支票,javascript,reactjs,checkbox,Javascript,Reactjs,Checkbox,我正在使用复选框输入。当我点击checbox时,复选框不显示checked,但我仍然可以得到复选框的值。我使用React JS 简单复选框 从“React”导入React; 从“/../../utils/apiCaller”导入callApi 从“react router dom”导入{Link} 类ProductActionPage扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ id:“”, 产品状态:“” } } onChange=(e)=>{

我正在使用复选框输入。当我点击checbox时,复选框不显示checked,但我仍然可以得到复选框的值。我使用React JS

简单复选框
从“React”导入React;
从“/../../utils/apiCaller”导入callApi
从“react router dom”导入{Link}
类ProductActionPage扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
id:“”,
产品状态:“”
}
}
onChange=(e)=>{
var目标=e.target;
var name=target.name;
var value=target.type=='checkbox'?target.checked:target.value;
这是我的国家({
[名称]:值
});
}
render(){
var statusCheckbox=this.state.productStatus==“true”?true:false;
返回(
庄泰:
康航
卢丽
惠波
);
}
}

如何显示选中复选框?

此.state.productStatus
是一个布尔值,因此您的条件将始终为您提供
false
,因为您正在比较
布尔===String

换衣服

var statusCheckbox = this.state.productStatus === 'true' ? true : false;

或者干脆

var statusCheckbox = this.state.productStatus;
或者您可以直接使用
this.state.productStatus

<input 
   type="checkbox" 
   checked={this.state.productStatus} 
   name="productStatus" 
   onChange={this.onChange} 
/>


我猜
this.state.productStatus=='true'
必须为true。。。代码中为
state.productStatus
设置的唯一值是
'
您的意思是我必须设置status.productStatus:false还是true???我的意思是要选中复选框,productStatus(以及您的代码)必须正好是字符串
“true”
,才能发生此情况。如果我使用此.state.productStatus,我将收到警告“已收到选中的布尔属性
的字符串
false
。浏览器会将其解释为真实值。你是说checked={false}“@HuyVuThe yes productStatus是一个
字符串
这里只要将它转换为布尔值就可以了,
productStatus:true
@HuyVuThe您可以有初始状态
productStatus:false
。好的,谢谢,我在数据库中设置了status字段的数据类型为varchar,所以我必须将数据库中的状态数据转换为布尔值,现在,它工作得很好
var statusCheckbox = this.state.productStatus;
<input 
   type="checkbox" 
   checked={this.state.productStatus} 
   name="productStatus" 
   onChange={this.onChange} 
/>