React Native Router Flux动态路由

时间:2017-01-14 10:47:44

标签: javascript reactjs react-native ecmascript-6

在我的React Native项目中,我有一个导入:

import { Actions as NavigationActions } from 'react-native-router-flux'

我也有this.props.route路线的道具类型,相当于'someRoute'。我想像这样有效地使用这两者:

<TouchableOpacity onPress={NavigationActions.this.props.route}>

显然这不起作用,但如何将两者结合使用?

我试过

const { route } = this.props
<TouchableOpacity onPress={NavigationActions.route}>

以及

<TouchableOpacity onPress={{$NavigationActions}.${route}}>
但是没有工作。任何人都可以告诉我我做错了什么

3 个答案:

答案 0 :(得分:4)

请参阅react-native-router-flux minitutorial

您无意访问他们的props

<Router>
  <Scene key="root">
    <Scene key="pageOne" component={PageOne} title="PageOne" initial={true} />
    <Scene key="pageTwo" component={PageTwo} title="PageTwo" />
  </Scene>
</Router>

<Text onPress={Actions.pageTwo}>This is PageOne!</Text>

修改

由于您期待动态重定向,因此该方法与处理对象时的方法相同。

a = { foo: 'bar' } - &gt; a.fooa['foo'] (第二个是动态版本)

在您的情况下,这是Action[page]

哪个成为

const route = this.props.route;
<TouchableOpacity onPress={NavigationActions[route]}>

确保该路线实际上是key所拥有的Scene

答案 1 :(得分:1)

如果您的路由器的NavigationActions[this.props.route]值为scene

,则可以尝试使用此this.props.route
<TouchableOpacity onPress={NavigationActions[this.props.route]}>

如果这不起作用,请检查您定义的Router是否scene key的值为this.props.route

答案 2 :(得分:0)

您可以使用此:

Polygons.doSomethingWith(polygon)