gpt4 book ai didi

javascript - React.js block 元素的双向绑定(bind)

转载 作者:行者123 更新时间:2023-11-28 19:25:18 26 4
gpt4 key购买 nike

我正在尝试使用react将一个值绑定(bind)到div,以便我可以维护该元素的状态(例如开-关)看起来我应该使用LinkedStateMixin,但我下面的实验证明react不会t 支持 block 级元素的任意属性。两个元素都有默认值,但 div e.target.value 从其 onclick 处理程序中返回未定义,而输入元素值已正确设置。知道如何将数据绑定(bind)到 div 吗?谢谢!

var Component = React.createClass({
mixins: [React.addons.LinkedStateMixin],
getInitialState: function() {
return {message: 'Hello!'};
},
render: function () {
var valueLink = this.linkState('message');
var handleClick = function(e) {
console.log(e.target.value);
valueLink.requestChange(e.target.value);
};
return (
<div>
<input type="text" onClick={handleClick} defaultValue={valueLink.value} />
<div onClick={handleClick} defaultValue={valueLink.value}>
{this.state.message}
</div>
</div>
);
}
});

React.render(<Component />, document.body);

http://jsfiddle.net/su8r5Lob/

最佳答案

var Component = React.createClass({
mixins: [React.addons.LinkedStateMixin],
getInitialState: function() {
return {
message: 'Hello!',
active: false
};
},
inputClick : function(e) {
console.log(e.target.value);
},
toggleActive : function(e){
console.log('div state', this.state.active);
var newState = !this.state.active;
this.setState({active: newState});
},
render: function () {
var cx = React.addons.classSet;
var valueLink = this.linkState('message');
var classes = cx({
'base-class': true,
'element-active': this.state.active
});

return (
<div>
<input type="text" onClick={this.inputClick} defaultValue={valueLink.value} />
<div onClick={this.toggleActive} className={classes}>
{this.state.message}
</div>
</div>
);
}
});

React.render(<Component />, document.body);

http://jsfiddle.net/su8r5Lob/1/

关于javascript - React.js block 元素的双向绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27995199/

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