html - 在复选框上显示组件点击 react

标签 html css reactjs checkbox

你好,我是 React 的新手,我有一个关于 React 中的复选框点击处理的问题。我想在选中复选框时显示一个 div,如果未选中该复选框,则删除该 div。

我这样做的方式仅在单击复选框时显示 div,但在取消选中时不会删除 div。我怎样才能在 react 中做到这一点?

class QuestionOverlay extends Component {

    constructor() {

        super();

        this.showComments = this.showComments.bind(this);

        this.state = {

            showComponent: false,
        };

    }


    showComments = (e) => {

        this.setState({

            showComponent: true,

        });

    }

    render() {

           return (

                <div className="add_checkbox">

                   <span>Enable Comments</span>
                   <input className="checkbox" type="checkbox" name="enable_comment" onClick={this.showComments} value="enable_comment"/>

                </div>



                {this.state.showComponent ? <div  className="comments_preview_sample"></div> : null}

        )
    }
}

最佳答案

原因是你总是设置showComponent=true的值,你需要在取消选中复选框时重置状态变量,使用这个:

showComments(e){

    this.setState({
        showComponent: e.target.checked,
    });

}

检查工作 fiddle :https://jsfiddle.net/mrqutgbz/

您需要更改的几件事:

*您从 render返回 2 个元素,一个 div 和一个来自条件 div >呈现。我们不能从 render 返回多个 html 元素,所以将条件渲染放在主 div 中。

*您两次绑定(bind) showComments 方法,一次在constructor 中,另一次使用arrow,删除箭头,这不是必需的。

*您正在呈现的条件是空的,将一些内容放入其中。

关于html - 在复选框上显示组件点击 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42267342/

相关文章:

javascript - jQuery 未在 Firefox 中定义错误

android - 我如何在 HTML5 中创建类似 Android 的登录模式?

jquery - 有没有办法强制 jQuery UI 菜单子(monad)菜单始终向上而不是向下定位?

css - 如何定位 h2 中的元素

javascript - 如何在 ReactJS 中的 Whatsapp 上共享带有文本的图像?

javascript - 如何在 redux 中更新特定数组项内的单个值

javascript - 如何在类似于 GWT 的 DeferredCommand 的事件循环之外执行延迟的 javascript

php - 如果mysql中存在,如何更新一行,或者如果不存在,如何创建一个新行

python - 在断言更改之前等待 CSS 属性更改

javascript - 在将视频上传到数据库之前,如何对 native expo进行压缩?