Selama petualangan migrasi Octane saya, saya menemukan kesalahan ini:
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
Saya sempat bingung di bagian pertama "generating link", tapi masalah utamanya ada di " @action decorator". Setelah saya menyelesaikan ini, kesalahan pada "rute buku kas" hilang.
Saya percaya ada dua cara untuk meningkatkan DX:
1) Sepertinya apa pun yang menghasilkan kesalahan "rute buku kas" (saya berasumsi komponen LinkTo
?) setelah menangkap pengecualian _some_, ia salah mengasumsikan bahwa models
tidak disediakan.
2) Jika kesalahan kedua yang mengeluh tentang @action
akan memberi saya petunjuk tentang file yang salah, saya akan menemukan sumber masalahnya lebih cepat.
Catatan kaki untuk siapa pun yang mungkin menderita masalah yang sama: Saya kebetulan memiliki action
dan task
(dari ember-concurrency) yang didefinisikan dalam satu controller dengan nama yang sama . Setelah menjalankan npx ember-native-class-codemod http://localhost:4200 ./app
codemod, nama mereka bertabrakan di namespace tingkat kelas.
Sedikit latar belakang di sini, pernyataan yang dimaksud ditambahkan di https://github.com/emberjs/ember.js/pull/14554. Perbaikan itu mengasumsikan bahwa satu-satunya alasan kesalahan ini mungkin adalah karena Anda belum menyediakan cukup params dinamis (dan alasan kami menambah pesan kesalahan adalah karena Anda perlu mengetahui rute target).
Saya pikir perbaikan yang tepat di sini adalah memperbarui blok catch
:
Untuk:
assert
, jika tidak maka throw e
Yup, baru saja mengalami masalah yang sama di 3.18, terima kasih telah memposting ini, membuatnya mudah untuk melihat melewati bit tautan hasilkan ke masalah sebenarnya dari @action decorator dalam kasus saya adalah nama yang sama dengan yang lain.
Dalam kasus saya itu adalah nama tindakan duplikat