6

私は2つの画面を持っています:

Screen1: 結果

Screen2: フィルターの編集

Screen2 でフィルターを編集して戻ると、Screen1 で (新しく作成されたフィルター文字列変数を使用して) クエリを再取得したいと思います。フィルターの編集では、ミューテーションを使用したり、Redux アクションを起動したりしません (ユーザーの検索フィルター/設定をデータベースではなく localStorage/AsyncStorage に保存しているため、ミューテーションはありません)。フォームのローカル状態を変更し、それを使用して、Screen1 の特定のクエリに渡すフィルター文字列を作成するだけです。それが役立つ場合は、両方の画面でフィルター文字列にアクセスできます。

クエリがhttp://dev.apollodata.com/react/recoming-updates.html#Refetchrefetch()をラップするコンポーネントに限定されているようですが、別の画面からクエリを再実行するにはどうすればよいですか?

Screen1 と Screen2 の両方に同じクエリを配置してから、Screen2 で再取得を呼び出してみました。クエリは機能し、Screen2 で新しいデータを取得しますが、実際に必要な Screen1 で同じ名前のクエリが更新されません。同姓同名ならいいんじゃないの?(ただし、filters 変数は変更されました)

ここに画像の説明を入力

これを間違って設計しているだけで、より簡単な方法がある場合は、お知らせください。2 つの画面があり、両方に同じクエリを配置し、新しいフィルター変数を使用してクエリの 1 つを再フェッチすると、両方の場所で再フェッチが発生するはずですが、現在は個別に処理されています。

4

1 に答える 1