【问题标题】:What props can be passed to Navigator.push哪些 props 可以传递给 Navigator.push
【发布时间】:2017-04-06 18:10:50
【问题描述】:

我已经搜索了大约一个小时,这个问题有 0 个结果。我只是在寻找调用navigator.push 时可以使用的道具列表,特别是如何在调用中使用sceneConfig 道具,但完整的列表会非常有帮助。当然,像往常一样,Facebook 的文档只是半成品而且相当模糊。

我将什么传递给navigator.push?我需要可以传递给函数的对象的所有键和值。

【问题讨论】:

    标签: ios reactjs navigation react-native navigator


    【解决方案1】:

    这样就可以通过了

    this.props.navigator.push({
        title: "NextPage",
        component: NextPage,
        passProps: {username: this.state.username, password: this.state.password},
    });
    

    在 NextPage 中你可以使用这个

    constructor(props) {
        super(props);
        this.state = {
            username: this.props.username,
            password: this.props.password
        };
    }
    

    【讨论】:

      【解决方案2】:

      调用Navigator.push 时,您可以提供一个参数,该参数是一个具有任意数量的键和值的对象。导航器实际上并没有将这里的值用于任何事情,它只是传递给您的回调,renderSceneconfigureScene

      道具renderScene 获取您调用push 的对象,允许您检查其内容并返回您想要渲染的视图。

      道具configureScene 获取您调用的对象push,以及堆栈上的其他路由(initialRoute 道具,以及您之前调用的任何其他对象push,但尚未弹出) .在这里,你可以从Navigator.SceneConfigs 返回一些东西来描述路线应该如何动画

      【讨论】:

      • 感谢您的回复,但您是否阅读了我的问题?我需要知道我可以传递给 push 函数的内容,而不是 Navigator 的工作原理。有很多关于它如何工作的文档,只是没有关于如何深入实际使用它的文档。
      • @RyanWilson 我确实阅读了这个问题,我正在尝试回答它。你可以传递给 push 函数的是:anything。它需要一个对象。没有特殊的键。 Navigator 不希望 push 函数有任何其他参数。您只需传递一个对象,其中包含您想要使用的任何数据,以便导航器知道要渲染什么。您询问的 sceneConfig 道具不存在。有一个 configureScene 道具,我在回答中对此进行了描述。
      【解决方案3】:

      您是在尝试将属性传递给下一个场景,还是尝试在场景之间设置不同的过渡?

      如果是前者,您只需将一个对象传递给 navigator.push,您就可以访问 navigator.state.routeStack 中的值,这将为您提供所有当前路线的数组,以及您传递给推送对象。

      如果你想在场景之间设置不同的过渡,那么我认为你必须去任何你正在使用的地方和里面 configureScene={route, routeStack) => } 你应该能够提供像 if (route .name === 'Welcome') { return Navigator.SceneConfigs.FloatFromRight}

      不确定这是否正是您要找的!

      【讨论】:

      • 如果您只是询问如何导航,您只需在 push 语句中传递下一条路线的名称:navigator.push({name: "Login Page"});在 renderScene 中你会说 if (route.name) { return }
      猜你喜欢
      • 2021-01-20
      • 1970-01-01
      • 2020-09-23
      • 2021-04-20
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 2012-04-07
      相关资源
      最近更新 更多