Ember.js: 3.15移行での誤解を招くエラー

作成日 2019年12月27日  ·  3コメント  ·  ソース: emberjs/ember.js

Octaneの移行の冒険中に、私はこのエラーに遭遇しました。

index.js:172 Uncaught Error: Assertion Failed: You attempted to generate a link 
for the "cashbook" route, but did not pass the models required for generating 
its dynamic segments. Assertion Failed: The <strong i="6">@action</strong> decorator must be 
applied to methods when used in native classes

Screenshot 2019-12-27 at 22 31 47

「リンクの生成」の最初の部分で混乱しましたが、主な問題は「 @actionデコレータ」にあります。 これを解決すると、「キャッシュブックルート」のエラーはなくなりました。

DXを改善する方法は2つあると思います。
1)「キャッシュブックルート」エラー( LinkToコンポーネントを想定していますか?)を生成するものは、_some_例外をキャッチすると、 modelsが提供されていないと誤って想定しているようです。
2) @actionについて文句を言う2番目のエラーが、ファイルが正しくないことについてのヒントを私に与える場合、問題の原因をはるかに迅速に見つけることができます。


同じ問題に苦しむ可能性のある人への注意:たまたま、同じ名前の1つのコントローラーでactiontask (ember-concurrencyから)が定義されていました。 npx ember-native-class-codemod http://localhost:4200 ./app codemodを実行した後、それらの名前はクラスレベルの名前空間で衝突しました。

Bug

全てのコメント3件

ここで少し背景がありますが、問題のアサーションはhttps://github.com/emberjs/ember.js/pull/14554に追加されました

ここでの正しい修正は、このcatchブロックを更新することだと思います。

https://github.com/emberjs/ember.js/blob/d1ad76a2b22ce470639df3dfc6efb6864a70f588/packages/%40ember/-internals/glimmer/lib/components/link-to.ts#L770 -L777

どちらかに:

  1. 無効な動的セグメントに関するビットを削除します(メッセージに「リンクの生成中にエラーが発生しました
    「キャッシュブック」ルートの場合、$ {e.message} "
  2. 実際にスローされるエラーが予期されるものであるかどうかを確認します。そうでない場合はassert 、そうでない場合はthrow e

うん、3.18で同じ問題が発生しました。これを投稿してくれてありがとう、私の場合は別の名前と同じである@actionデコレータの実際の問題へのリンク生成ビットを過ぎて簡単に確認できました。

私の場合、それは重複したアクション名でした

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