为什么当我想在reduce函数中使用push函数返回一个新数组时,我得到一个错误.但是,当我在reduce函数中使用concat方法时,它返回一个没有问题的新数组.
我要做的就是将数组传递给reduce函数并返回相同的数组.
var store = [0,1,2,3,4];
var stored = store.reduce(function(pV,cV,cI){
console.log("pv: ", pV);
return pV.push(cV);
},[]);
Run Code Online (Sandbox Code Playgroud)
这会返回错误.但是当我使用concat时:
var store = [0,1,2,3,4];
var stored = store.reduce(function(pV,cV,cI){
console.log("pv: ", pV);
return pV.concat(cV);
},[]);
Run Code Online (Sandbox Code Playgroud)
它返回相同的数组.
有什么想法吗?
我试图将'handleItemClick'功能从'Dropdown'组件传递到他们'Team'组件,但是,我无法通过'List'组件.奇怪的是,当我在'List'中记录道具时,它说'itemClick'在'this.props'对象中,然而当我将它设置为'Team'组件上的道具时,它说"无法读取未定义的属性'itemClick'.
任何帮助将非常感激.
下拉组件:
var Dropdown = React.createClass({
getInitialState: function(){
return {
display: false
};
},
handleClick: function(e){
this.setState({display: !this.state.display})
},
handleItemClick: function(e){
console.log("Something");
},
render: function(){
return (
<div className="dropdown">
<Button whenClicked={this.handleClick} className="btn-default" title={this.props.data.title} number={this.props.data.teams.length} />
<List teams={this.props.data.teams} display={this.state.display} itemClick={this.handleItemClick}/>
</div>
);
}
});
Run Code Online (Sandbox Code Playgroud)
列表组件:
var List = React.createClass({
render: function(){
console.log(this.props)
var teams = this.props.teams.map(function(team){
return <Team key={team} team={team} teamChoice={this.props.itemClick} />
});
var displayStyle = {
display: this.props.display ? 'block' : 'none'
};
return (
<ul style={displayStyle} className="dropdown-menu">
{teams} …Run Code Online (Sandbox Code Playgroud)