使用setState无法动态更改复选框的状态

3

下面是一个简单的React组件,初始复选框状态为false。

我正在尝试使用setState()动态更改它,但不起作用。

这是我的代码:

        var Hello = React.createClass({
            getInitialState: function(){
                return {
                    checked : this.props.checked.toString() === "false" ? false : true
                };
            },
            render: function() {
            console.log("rendering==");
                return <div><input type = "checkbox" defaultChecked = {this.state.checked}/></div>;
            }
        });

        var compRef = React.render(<Hello checked = "false" />, document.body);

   Trying to change state after rendering the component

        setTimeout(function(){
        compRef.setState({checked: true})
        },3000);

我无法使用setState更改复选框的状态。

这里有一个演示

2个回答

3

1
如果您想切换复选框输入的状态,需要使用checkedonChange处理程序来代替使用defaultChecked

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接