首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择dynamically a component作为缺省排序

选择dynamically a component作为缺省排序
EN

Stack Overflow用户
提问于 2015-10-24 00:23:58
回答 1查看 44关注 0票数 0

有没有可能通过reactjs触发一个组件,而不是某种黑客行为?例如,我有一大组共享相似分组的对象。我从其中生成一个基于每个组的排序或选项卡菜单。用户可以从中选择并查看该分组的子对象。

问题是,当你最初登陆的时候,你看到的UI基本上是半空的。因此,我想要做的是以某种方式选择组导航中的第一个组件,并让它调出它的子组进行显示。

我知道如果我使用的是jQuery,我可以简单地

代码语言:javascript
复制
$('.group-tab:first').click();

但是我正在尝试在React中创建这个方法,不使用jQuery,也不使用一次性方法(如果可能的话

EN

回答 1

Stack Overflow用户

发布于 2015-10-24 01:26:32

我建议您控制在顶级组件的状态中显示哪个组。下面是一个用JSfiddle编写的最小工作示例,其中的代码如下,您可以通过单击<li>项来切换组。您可以在App组件中的任何位置使用对函数changeGroup的调用来更改活动组。在本例中,函数回调被传递给<li>元素的onClick事件处理程序。

代码语言:javascript
复制
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'));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33307178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档