React-native-router-flux: 現在の画面タブを選択すると、新しいコンポーネントがインスタンス化されます

作成日 2017年03月03日  ·  9コメント  ·  ソース: aksonov/react-native-router-flux

画面(私の場合はタブ)にリストビューがあり、タブを再度選択すると(すでに選択されている)、新しいコンポーネントがインスタンス化されます。

たとえば、リストをスクロールしてからTabボタンをタップすると、スクロールが一番上に移動します。 これは最初にのみ発生するため、タブボタンをもう一度タップしても、何も起こりません(これは、予想される動作だと思います)。

シーン内を移動するときに同じことが「時々」(正確にいつかはわかりません)発生します。以前のコンポーネントの状態が失われるため、これが発生するはずではないと思います。

私が使用しているバージョン:

  • react-native-router-flux v3.38.0
  • react-native v0.42.0
  • Androidシミュレーター
bug

最も参考になるコメント

react-native-router-fluxを使用すると、v3.37.0は期待どおりに機能する(画面を再レンダリングしない)ため、v3.38.0またはその依存関係のバグのようです。

全てのコメント9件

react-native-router-fluxを使用すると、v3.37.0は期待どおりに機能する(画面を再レンダリングしない)ため、v3.38.0またはその依存関係のバグのようです。

はい、同じ問題に直面し、3.37.0にロールバックします

3.37でも同じ問題に直面しています

3.37.0で問題が解消されたが、3.38.0では存在することを確認できます。

@ sk15973
新しいパッケージをインストールした後、必ずreact-nativeパッケージャーを再起動してください。

また、それに応じてcomponentDidMount / componentWillMount / componentWillReceivePropsを使用し、状態に多くの不要な変更を加えないようにしてください。

ここで同じ問題。

@ sk15973 package.jsonファイルで、 react-native-router-flux依存関係にキャレット(^)記号が含まれていないことを確認してください。

"dependencies": {
    "react-native-router-flux": "3.37.0",   // Good
    "react-native-router-flux": "^3.37.0", // Bad
}

キャレット記号を使用すると、新しいnpm installを実行するときに、実際にv3.38.0を使用します。 これは、マイナーリリースで動作の変更を導入することにより、 react-native-router-fluxがsemverを壊したように見えるためです。

タグ付けしてくれた@aksonovを許してください。ただし、 npm install react-nativer-router-flux --saveを使用すると、デフォルトでキャレット^が挿入されるため、これはやや深刻だと思います。 時間の経過とともに、このライブラリのユーザーは、新しいnpm install実行した後、不可解な問題に直面する可能性があります。 しかし、時間がない場合は完全に理解しています:)

私は3.38で同じ問題に直面しています

@jonrhありがとう、私はそれに気づかなかった、そしてそれは今うまくいく

@EmiPC @jonrhこのバグは3.39.1で解決されましたか?

@iiitmahesh残念ながらわかりません。 バージョン3.37.0は、このライブラリを使用する最後のバージョンであり、ReactNavigationに移行します。

このページは役に立ちましたか?
0 / 5 - 0 評価