2017-01-14 7 views
3

に反応:は私が輸入を持っている私のリアクトネイティブプロジェクトでネイティブルータフラックスダイナミックルート

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

私はまた、「someRoute」に相当this.props.routeのルートのための小道具の種類があります。私は効果的に2つを一緒に使用したいと思います:

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

明らかにそれは動作しませんが、どのように一緒に使用することができますか?

私は

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

とも

<TouchableOpacity onPress={{$NavigationActions}.${route}}> 

どちらも仕事をしようとしました。誰でも私が間違っていることを私に見せてもらえますか?

+0

2つの小道具を組み合わせるとどういう意味ですか? '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> 

編集:あなたが前方に動的なリダイレクトを探しているので、あなたがオブジェクトを扱ったかのように

、アプローチは同じです。

a = { foo: 'bar' } - >a.foo又はa['foo'](第2の動的バージョンである)

あなたのケースでAction[page]となります。

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

なり

ルートがSceneを持っていることを実際にkeyであることを確認してください。

+0

私はReact NativeのためにIgniteスターターを使用しています。 'RoundedButton onPress = {NavigationActions.login}>'同じ実装私はルート名を動的にしたいだけです。上記のように私のルートが設定されています。 ' ' – mtwallet

+1

@mtwallet動的であれば、'アクション['ページ '] 'を実行する必要があります – zurfyx

+0

@zurfx .log' this.props.routeルート名を見ることができます。もし 'NavigationAction'をログに記録するとActionsオブジェクトを見ることができますが、2つを組み合わせて' NavigationActions [route] 'を記録すると定義されません。私はRNRFで正しくルートを設定しました。 – mtwallet

1

これは、あなたがそれをkeyscenethis.props.routeの価値を持って持っているかどうかを定義しRouterをチェック動作しない場合は、あなたのルータが値this.props.route

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

sceneを持っている場合は、このNavigationActions[this.props.route]のように試すことができます。

関連する問題