2017-01-14 3 views
3

В моем Реагировать Native проекта у меня есть импорт:Реагировать Родной маршрутизатор Flux динамического маршрут

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}}> 

но ни работы. Может ли кто-нибудь показать мне, что я делаю неправильно

+0

Что вы подразумеваете, объединив два реквизита? Функция 'NavigationActions.this.props.route' является функцией? –

+0

Да, это вызывает изменение маршрута. Я использую https://github.com/aksonov/react-native-router-flux – mtwallet

ответ

3

См. 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> 

Edit:

Поскольку вы смотрите вперед, динамическое перенаправление, подход такой же, как если бы вы имели дело с объектами.

a = { foo: 'bar' } ->a.foo или a['foo'](вторая является динамическая версия)

То есть в вашем случае Action[page].

Который становится

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

Убедитесь, что маршрут на самом деле key, что Scene имеет.

+0

Я использую стартер Ignite для React Native. Вот пример рабочего маршрута, созданного ими '' той же самой реализации. Я просто хочу, чтобы название маршрута было динамическим. Мои маршруты настраиваются, как показано выше. '' – mtwallet

+1

@mtwallet, если он динамический, вы должны иметь возможность делать 'Actions ['page']' вместо – zurfyx

+0

@zurfx, если я 'console .log' this.props.route Я могу видеть имя маршрута, если я вхожу в журнал «NavigationAction», я могу видеть объект Actions, но если я объединю два и log 'NavigationActions [route]', я получаю undefined? У меня правильно настроены маршруты в RNRF. – mtwallet

1

Вы можете попробовать, как этот NavigationActions[this.props.route], если ваш маршрутизатор имеет scene со значением this.props.route

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

Если это не работает, проверьте Router вы определили, есть ли у его scene с key имеют значение this.props.route ,

Смежные вопросы