gpt4 book ai didi

javascript - react : get custom checkbox's checked attribute

转载 作者:数据小太阳 更新时间:2023-10-29 06:10:42 25 4
gpt4 key购买 nike

我想用复选框进行一些自定义,它看起来像这样:

enter image description here

所以我将我的自定义复选框包装到 React 组件中:

require('../../less/ck-checkbox.less');
var React = require('react');

var CkCheckbox = React.createClass({
propTypes: {
name: React.PropTypes.string,
text: React.PropTypes.string,
defaultChecked: React.PropTypes.bool,
onChange: React.PropTypes.func
},
getDefaultProps: function() {
return {
name: 'checkbox',
text: '',
defaultChecked: false,
onChange: function () {}
};
},
render: function() {
return (
<div className="ck-checkbox">
<label>
<input
type="checkbox"
name={this.props.name}
ref="c"
defaultChecked={this.props.defaultChecked}
onChange={this.props.onChange.bind(this, this.refs.c.checked)}
/>
<span className="icons">
<span className="icon-checked-o icon-true"></span>
<span className="icon-circle-o icon-false"></span>
</span>
{this.props.text.length > 0 ?
<span className="ck-checkbox-text">{this.props.text}</span> : null
}
</label>
</div>
);
}
});

module.exports = CkCheckbox;

我的容器是这样的:

var React = require('react');

var CkCheckbox = require('./CkCheckbox.js');

var Test = React.createClass({
render: function() {
return (
<div>
<CkCheckbox onChange={this._handleChange}/>
</div>
);
},

_handleChange: function(checked, e) {
console.log(checked)
}
});

module.exports = Test;

你可以看到,我尝试在onChange回调中绑定(bind)this.refs.c.checked,但是没有成功。

那么,如何在 _handleChange 函数的测试组件中获取自定义复选框的选中状态

最佳答案

在这种情况下,您不需要使用 refs,因为您可以从 e 参数中获取已检查的属性

// CkCheckbox component
<input type="checkbox"
name={this.props.name}
defaultChecked={this.props.defaultChecked}
onChange={ this.props.onChange } />

// Test component
_handleChange: function(e) {
var checked = e.target.checked;
console.log(checked)
}

Example

或者如果你只想传递 checked 属性,你可以这样做

// CkCheckbox component
handleChange: function (e) {
this.props.onChange(e.target.checked);
},

<input type="checkbox"
name={this.props.name}
defaultChecked={this.props.defaultChecked}
onChange={ this.handleChange } />

// in Test component
_handleChange: function(checked) {
console.log(checked)
}

Example

关于javascript - react : get custom checkbox's checked attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34563062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com