我正在使用ReactJS,我正在尝试从this.props.children
获取子项,但是它返回undefined。 According to the documentation我应该可以访问这个特殊财产。
componentDidMount: function() {
console.log("this",this) // this ReactCompositeComponent.createClass.Constructor
this.setMenuListeners.apply(this);
this.loadMenuFromServer();
},
setMenuListeners: function() {
pubSub.on('mainMenu.menuItemClicked',function() {
console.log(this.props.children) // undefined
}.bind(this))
},
以下是一些渲染孩子的代码:
loadMenuFromServer: function() {
var menus = []
$.getJSON(APPFS.menuItems,function(data){
for(var s in data) {
menus.push(<MenuItem expandable={true} content={s} />)
menus.push(<ul onClick={this.menuItemClicked} className="main-menu-submenu">{
this.loopAndAddMenu(data[s]).map(function(result){
return(result)
})
}</ul>)
}
this.setState({data:menus})
}.bind(this));
},
loopAndAddMenu: function(data) {
var menus = []
for(var s in data) {
menus.push(<MenuItem expandable={false} content={s} key={data[s]} />)
}
return menus
},
render: function(){
return (
<ul className="main-menu">
{this.state.data}
</ul>
)
}