在我的 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}}>
但两者都不起作用。谁能告诉我我做错了什么
请参阅 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' }
-> a.foo
或 a['foo']
(第二个是动态版本)
在你的情况下,这是Action[page]
。
这成为
const route = this.props.route;
<TouchableOpacity onPress={NavigationActions[route]}>
确保该路由实际上是Scene
具有的key
。
如果您的路由器具有值为 this.props.route
的scene
,您可以尝试这样做NavigationActions[this.props.route]
<TouchableOpacity onPress={NavigationActions[this.props.route]}>
如果这不起作用,请检查您定义的Router
是否具有具有key
值为 this.props.route
的scene
。
你可以使用这个:
const route = this.props.route;
Actions[route]()