我有两个主要部分(着陆和技能)的应用程序:将数据发送到一个间接的孩子React.js上的click事件
App = React.createClass({
render() {
return (
<div>
<Landing />
<Skills category={category}/>
</div>
);
}
});
在“落地”,我有一个SocialMenu组件,有项目列表(项目列表被送到SocialMenu像:<SocialMenu items={ ['Home', 'Services', 'About', 'Contact us']} />
在用户点击,当单击突出显示的项目
SocialMenu = React.createClass({
getInitialState: function(){
return { focused: 0 };
},
clicked: function(index){
this.setState({focused: index});
},
var self = this;
return (
<div>
<ul className="testblocks">{ this.props.items.map(function(m, index){
var style = '';
if(self.state.focused == index){
style = 'focused';
}
return <li key={index} className={style} onClick={self.clicked.bind(self, index)}>{m}</li>;
}) }
</ul>
<p>Selected: {this.props.items[this.state.focused]}</p>
</div>
);
}
});
我想什么有发生,是有指标的数据。来自SocialMenu,传递给技能组成部分。
但是,我不知道该怎么做,因为SocialMenu是Landing的孩子,而不是技能。 (几乎我想让列表保持着陆状态,但是将列表的点击输出放在技能中)。
我该怎么做?
我会在哪里放置该事件? – user1072337
我建议阅读[关于Flux的教程](https://facebook.github.io/flux/docs/overview.html#content)。但是,在简历中:您的SocialMenu组件将调用一个执行包含索引信息的Dispatcher的Action。索引信息可以存储在商店中。商店负责发布带有此事件监听器的所有组件的索引信息的事件。 – Dherik
有没有其他方法可以做到这一点?有没有一种更简单的方式将这些数据传递给“应用程序”,然后使用道具来传递技能? – user1072337