有没有可能通过reactjs触发一个组件,而不是某种黑客行为?例如,我有一大组共享相似分组的对象。我从其中生成一个基于每个组的排序或选项卡菜单。用户可以从中选择并查看该分组的子对象。
问题是,当你最初登陆的时候,你看到的UI基本上是半空的。因此,我想要做的是以某种方式选择组导航中的第一个组件,并让它调出它的子组进行显示。
我知道如果我使用的是jQuery,我可以简单地
$('.group-tab:first').click();但是我正在尝试在React中创建这个方法,不使用jQuery,也不使用一次性方法(如果可能的话
发布于 2015-10-24 01:26:32
我建议您控制在顶级组件的状态中显示哪个组。下面是一个用JSfiddle编写的最小工作示例,其中的代码如下,您可以通过单击<li>项来切换组。您可以在App组件中的任何位置使用对函数changeGroup的调用来更改活动组。在本例中,函数回调被传递给<li>元素的onClick事件处理程序。
class App extends React.Component {
constructor(){
this.state={active_group: 0};
this.changeGroup = this.changeGroup.bind(this);
}
changeGroup(group_id){
this.setState({active_group: group_id});
}
render() {
//this is a rough implementation
var group = '';
if (this.state.active_group == 1){
group = <Group1/>;
}
else if (this.state.active_group == 2){
group = <Group2/>;
}
else if (this.state.active_group == 3){
group = <Group3/>;
}
return (
<div>
<ul>
Here is the nav
<li onClick={this.changeGroup.bind(this,1)}> Group 1 </li>
<li onClick={this.changeGroup.bind(this,2)}> Group 2 </li>
<li onClick={this.changeGroup.bind(this,3)}> Group 3 </li>
</ul>
{group}
</div>
);
}
};
class Group1 extends React.Component {
render(){
return(<div> Group 1 now showing </div>)
}
};
class Group2 extends React.Component {
render(){
return(<div> Group 2 now showing </div>)
}
};
class Group3 extends React.Component {
render(){
return(<div> Group 3 now showing </div>)
}
};
React.render(<App />, document.getElementById('container'));https://stackoverflow.com/questions/33307178
复制相似问题