Skip to content

Navigator 属性initialRouteStack的使用 #25

@wodezhuanshu

Description

@wodezhuanshu

楼主,你好,我看了你的Navigator的设计与实现 ,有一点不明白 这个initialRouteStack属性具体怎么用啊,我按照你的方式试了试,好像不行估计我理解不够 ,能够详细讲解一下 或者给个DEMO呢

我现在想实现的就是当原生不同的Activity 有多个入口要跳转到RN界面 此时我该怎么实现呢?

我刚接触RN 有些还是很蒙 ,希望楼主给以解惑 万分感谢

Activity

wodezhuanshu

wodezhuanshu commented on Dec 8, 2016

@wodezhuanshu
Author

<Navigator
// initialRoute={{
// name: 'Main',
// component:Main
// }}
initialRouteStack= {[this.getInitialRouteStack.bind(this)]}

                configureScene={()=>Navigator.SceneConfigs.FadeAndroid}
                renderScene={(e, i)=>this._renderScene(e, i)}
            />

getInitialRouteStack() {

    let props = this.getProps();
    console.log(props)

    let detailId = props.detailId;
    if (detailId) { // 如果传入了详情id,那么跳转到详情页
        return [{name: 'Main', },
        {
            component: <Main data={{id: detailId, }}/>,
            backIsClose: true,
        }];
    }


    let wantAsk = props.wantAsk;
    if (wantAsk === true || wantAsk === 'true') { // 如果传入了提问属性=true,那么直接跳转到提问页面
        return [{name: 'Main2', },
        {
            component: <Main2 backIsClose={true}/>,
            backIsClose: true,
        }];
    }

    // 跳转到首页
    return [{name: 'Main', }];

这是我的实现

cnsnake11

cnsnake11 commented on Dec 8, 2016

@cnsnake11
Owner

能描述一下具体的问题吗?

你说的这种场景是需要原生配合实现的,需要原生把detailId或者wantAsk传过来,不知道你传成功了吗。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @wodezhuanshu@cnsnake11

        Issue actions

          Navigator 属性initialRouteStack的使用 · Issue #25 · cnsnake11/blog