2016-11-22 81 views
0

我一直在搜索大约一个小时,结果为0。我只是在寻找一个可以在拨打navigator.push时使用的道具列表,特别是我如何在通话中使用sceneConfig道具,但是整个列表将非常有帮助。当然,就像总是Facebook的文档一样,只有一半的时间和相当模糊。什么道具可以传递给Navigator.push

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

回答

1

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

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

的道具configureScene得到你叫push对象,与堆栈上的其他路线(该initialRoute道具,和你以前称为push用,并没有弹出任何其他对象)一起。在这里,您可以从Navigator.SceneConfigs返回一些东西来描述路线应该如何生成动画

+0

感谢您回应,但你甚至看我的问题?我需要知道我可以传入'push'函数,而不是Navigator的工作方式。有很多关于它如何工作的文档,但没有关于如何深入实际使用它的文档。 –

+0

@RyanWilson我确实读过这个问题,我试图回答它。您可以传入推送功能的是:*任何*。它需要一个对象。没有特别的钥匙。导航器不期望'push'函数的任何其他参数。您只需传递一个对象,其中包含想要用于导航器的任何数据即可知道要呈现的内容。你所问的'sceneConfig'道具不存在。有一个'configureScene'道具,我在我的回答中描述过。 –

0

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

如果它的前者只是将一个对象传递给navigator.push,并且您可以访问navigator.state.routeStack中的值,该值将为您提供当前所有路由和名称以及您传入的其他任何属性的数组推对象。

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

不知道这是不是你正在寻找的!

+0

如果您只是询问如何导航,您只需在push语句中传递下一个路由的名称:navigator.push({name:“Login Page”});并在renderScene中,你会说if(route.name){return } –

+0

更正:(route.name ===“Login Page”)** –

3

这样你可以通过

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

在下一页你可以使用这个

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