我的JavaScript有点弱。我从这个答案中得到启发,在REACT中将功能从父母传递给孩子,但我遇到了一些困难。
有人可以帮助我更正我的代码吗?谢谢!
var List = React.createClass({
deleting: function(test){
console.log(test);
},
render: function() {
var all = this.props.activities;
var test = List.deleting;
var list = all.map(function(a){
return (<ListItem act={a} del={test}>);
});
return (
<ul> {list}
</ul>
);
}
});
var ListItem = React.createClass({
deleting: function(e){
this.props.del(e.target.parentNode.firstChild.innerHTML);
},
render: function(){
return (
<li key={this.props.act}>{this.props.act}
<div onClick={this.deleting}>X</div>
</li>
);
}
});
我得到的错误:
您需要传递对.deleting
属于List
Object的方法的引用,现在您正在尝试传递var test = List.deleting;
,即undefined
。为了this
在.map
,指的是List
,你应该设置this
为.map
自己-这样做,只是通(在我们的情况下,它应该是this
因为this
在渲染方法指List
)第二个参数.map
,并通过对del=
属性的参考方法this.deleting
。
还设置key
了属性ListItem
,并在React
所有的标签都必须关闭-所以加/>
(现在你得到错误,因为你没有关闭标签ListItem
)在结束ListItem
标签
var List = React.createClass({
deleting: function(test) {
console.log(test);
},
render: function() {
var all = this.props.activities;
var list = all.map(function(a) {
return (<ListItem key={a} act={a} del={this.deleting} />);
}, this);
return <ul> {list} </ul>
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句