javascript - 复选框不显示选中

标签 javascript reactjs checkbox

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

简单的复选框

import React from 'react';
import callApi from './../../utils/apiCaller'
import { Link } from 'react-router-dom'


class ProductActionPage extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            id: '',
            productStatus: ''
        }
    }

    onChange = (e) => {
        var target = e.target;
        var name = target.name;
        var value = target.type === 'checkbox' ? target.checked : target.value;
        this.setState({
            [name]: value
        });
    }

    render() {
        var statusCheckbox = this.state.productStatus === 'true' ? true : false;
        return (
            <div className="row">
                <div className="col-xs-6 col-sm-6 col-md-6 col-lg-6">
                        <div className="form-group">
                            <label>Trang thai: </label>
                        </div>
                        <div className="checkbox">
                            <label>
                                <input type="checkbox" checked={statusCheckbox} name="productStatus" onChange={this.onChange} />
                                Con hang
                            </label>
                        </div>
                        <button type="submit" className="btn btn-primary">Luu lai</button>
                        <Link to="/product/list" className="btn btn-danger ml-5">Huy bo</Link>
                </div>
            </div>
        );
    }

}

如何显示选中的复选框?

最佳答案

this.state.productStatus 是一个 bool 值,所以你的条件总是给你 false,因为你正在比较 Boolean === String.

只是改变

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

var statusCheckbox = this.state.productStatus ? true : false;   //It doesn't make any sense

或者干脆

var statusCheckbox = this.state.productStatus;

或者你可以直接使用this.state.productStatus,

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

关于javascript - 复选框不显示选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57670406/

相关文章:

javascript - Cesium 从 KML 加载的 Entity 获取坐标

javascript - 通过单击动态加载的表中同一行的另一个字段来更新行的字段

javascript - jquery 删除动态行值

javascript - Jtable jquery 展开子表

javascript - 在 javascript 中使用 fetch 请求 API 时出现 CORS 策略错误

reactjs - 如何在 Formik Validations Reactjs 中添加单选按钮?

node.js - ReactJS 在 npm start 上找不到 babel-preset-es2015

php - 发布后保留单选按钮值

javascript - 使用复选框在 Google Fusion Tables 中进行过滤

wpf - 如何在 ListBoxItem 中居中 WPF CheckBox