Ember.js: 動的セグメントと `refreshModel`queryParamsを使用するルーター` transition.retry`により、予期しないエラーが発生します

作成日 2018年09月19日  ·  3コメント  ·  ソース: emberjs/ember.js

#10945に関連しているようです。

私のユースケースは、ユーザーが期限切れのトークンを使用してナビゲートしようとすると(ウィンドウを十分長く開いたままにして)、API呼び出しが不正なエラーで失敗することです。 このタイプのエラーをキャッチし、ユーザーを再認証し、認証後に移行を再試行するために、アプリケーションのエラーアクションにいくつかのロジックを追加しました。 問題は、私がしようとするということであるtransition.retry()とダイナミックセグメントとクエリパラメータを持つルートにrefreshModel 、それは以下のエラーで失敗します。

You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route [route name]

クエリパラメータをrefreshModel: falseに設定すると、正常に機能します。

再現可能なひねりは次のとおりです: https ://ember-twiddle.com/e25fc434b6e1c1627e553b8120203655
「クエリパラメータ付きの動的セグメント」リンクをクリックすると、エラーが表示されます。 /routes/dynamic-segment.jsでrefreshModelfalseに変更すると、機能します。

どんな助けでも大歓迎です。 ありがとう!

Has Reproduction Router Bugs

最も参考になるコメント

@ krukid-あなたが言及している問題は、ここで議論されている元の問題とは多少関係がないようです(私は思います)。 そのために新しい問題を提出していただけませんか?

@rreckonerrは最近、いくらか関連するバグを修正しました(中間遷移を行うときに元の値をスレッド化しない)、これはやや関連しているようです。 ここでの最初のステップは、router.jsで失敗したテストケースを作成することだと思います...

全てのコメント3件

Route.refresh()によってトリガーされた遷移をtransition.retry()しようとすると、同様のことが発生します。ここで、 queryParamsOnly: true

これはどういうわけか#16921に関連していると思います

Route#refresh()は、動的セグメントがある場合は再試行できない遷移を生成することがわかりました。

これが私のユースケースです: https

@ krukid-あなたが言及している問題は、ここで議論されている元の問題とは多少関係がないようです(私は思います)。 そのために新しい問題を提出していただけませんか?

@rreckonerrは最近、いくらか関連するバグを修正しました(中間遷移を行うときに元の値をスレッド化しない)、これはやや関連しているようです。 ここでの最初のステップは、router.jsで失敗したテストケースを作成することだと思います...

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