問題タブ [react-native-router-flux]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - React-Native-Router-Flux を使用した React Native のネストされたシーン
React-Native-Router-Flux (V. 3.37) を使用して Android アプリをビルドしており、ネストされたシーンを作成しようとしています。DefaultRenderer 要素を使用して、ネストされた単一のシーンを作成できましたが、複数あり、それらをナビゲートできるようにしたいと考えています。
私の index.android.js は次のようになります (ルーターとシーンの key="root" 要素内)。
外側のコンポーネントは次のようなものです。
このように、Inner1 コンポーネントは、Outer コンポーネントの smallContainer ビュー内に適切にネストされます。しかし、Inner2 に移動する方法がわかりません。this.props.children[1] を navigationState として単純にハードコーディングすると、「navigationState と onNavigate プロパティは null であってはなりません」と通知されます。
onPress={Actions.inner2} を使用して Inner1 に TouchableHighlight を配置すると、単に何もしません。
私の本能は、答えは Outer コンポーネントの DefaultRenderer 要素内の onNavigate={this.props.onNavigate} 属性にあると教えてくれますが、それに関する情報を見つけることができませんでした。React-Native-Router-Flux のサンプル ドキュメントの奥深くから DefaultRenderer 要素をコピーしました。
React-Native-Simple-Router、React-Native-Router、React-Router-Native も調べましたが、明らかに優れているものはありませんでした。
reactjs - ネイティブ ルーター フラックスに反応する: Android ハードウェアのバック キーをオーバーライドする
現在、Android ハードウェアの戻るキーを押すと、反応ルーター フラックスが Actions.pop() メソッドを呼び出します。別のシーンにジャンプしたいので、前のシーンに戻るのを防ぐメソッドを呼び出すのを防ぐ方法はありますか。例 シーンAからシーンB、シーンBからシーンC、シーンCで戻るキーを押すとシーンAに行きたい。
react-native - Actions.SCENE_KEY で変数を使用する方法 (ネイティブ ルーター フラックスに反応する)
これが私が見落としている単純なものである場合、私を許してください。私はプログラミングにかなり慣れていませんが、React と React Native にはかなり慣れていません。
シンプルなナビゲーション ドロワーを作成しています。
renderMenuItem(item)
drawer は、以下を返す関数を持つ Menu コンポーネントを表示します。
正しくラベル付けされたボタンをレンダリング関数に返す役割を果たします。
私が抱えている問題は、機能にonItemSelect
到達したときです。
ボタンを押したときに実際に新しいシーンを表示することはできません。onPress()
シーンをボタンの関数にハードコーディングすれば、機能させることができます。例えば:
明らかに、それはうまくいきません。私が必要とするのは、関数、関数、または関数のいずれかでitemを使用できることです。renderMenuItem(item)
onItemSelect(item)
ありがとうございました。私は昨夜からこれを理解しようとして頭を悩ませてきました。
react-native - router-flux で Action.___() を使用してシーンを変更すると、コンストラクターと ComponentWillMount が実行されますが、新しいシーンが表示されません
router-flux でセットアップされたプロジェクトがあり、シーンの変更が機能しません。
タイトルで述べたように、切り替えようとしているシーンのコンストラクターは componentWillMount と同様に実行されますが、ビューは次のシーンに変わりません。
ルートは次のように設定されています。
アクションは次のように呼び出されます
私は別のプロジェクトで同様の設定を行っていますが、これは正常に機能します。唯一の違いは、このコードが統合された iOS プロジェクトで実行されていることです。エラーは発生しません。意図した次のシーンがレンダリングされません。
バージョン:
反応: 15.3.2、反応ネイティブ: 0.37.0、反応ネイティブ ルーター フラックス: 3.37.0
javascript - React Native Router Flux - Scene のメソッドを呼び出す方法
ナビゲーション バーの右ボタンを押したときに、シーンのコンポーネント内の関数を呼び出したいです。
親で:
子 (History.js):
javascript - 最上位コンポーネント root-Scene/Router react-native-router-flux
シーンのトップ レベルに「ロジック コンポーネント」を追加したいと思います。
つまり、私はそれを得ました:
各コンテナーは、connect()() を使用して Redux に接続され、それぞれが必要とする独自のレデューサーを取得します。
すなわち:
したがって、「ルート」シーンを Redux に接続し、一般的なレデューサー (他のすべてのシーンも依存するもの) を与える必要があります。しかし、それで、私は componentDidUpdate、componentWillReceiveProps、... を使用してリッスンします。つまり、接続が変更されたときに Netinfo を使用して、リデューサーの状態を更新します。
明確かどうかはわかりませんが、そうであることを願っています。さらに情報が必要な場合は、彼らに尋ねてください。
助けてくれてありがとう
解決
アトランテの答えを見て、必要なものがすべて書かれているドキュメントを見てください:) https://github.com/aksonov/react-native-router-flux/tree/master/docs
すべてが期待どおりに機能する私の最終的な解決策は次のとおりです。
それは基本的に私が以前に試したすべてのものを組み合わせたもので、うまく機能します! 「キー xxx は既に定義されています」などはありません。