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๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
1) "cashbook route" ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค( LinkTo ๊ตฌ์„ฑ ์š”์†Œ๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๊นŒ?). ์ผ๋‹จ _some_ ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•˜๋ฉด models ๊ฐ€ ์ œ๊ณต๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ์ž˜๋ชป ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
2) @action ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๋Š” ๋‘ ๋ฒˆ์งธ ์˜ค๋ฅ˜๊ฐ€ ์ž˜๋ชป๋œ ํŒŒ์ผ์— ๋Œ€ํ•œ ํžŒํŠธ๋ฅผ ์ค€๋‹ค๋ฉด ๋ฌธ์ œ์˜ ์›์ธ์„ ํ›จ์”ฌ ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช์„ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•œ ๊ฐ์ฃผ: ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ•˜๋‚˜์˜ ์ปจํŠธ๋กค๋Ÿฌ์— action ๋ฐ task (ember-concurrency์—์„œ)๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค . npx ember-native-class-codemod http://localhost:4200 ./app codemod๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ํด๋ž˜์Šค ์ˆ˜์ค€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์ด๋ฆ„์ด ์ถฉ๋Œํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  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. ์œ ํšจํ•˜์ง€ ์•Š์€ ๋™์  ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ๋น„ํŠธ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค(๋ฉ”์‹œ์ง€๊ฐ€ "๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
    "cashbook"๊ฒฝ๋กœ์˜ ๊ฒฝ์šฐ $ {e.message} "
  2. ์‹ค์ œ๋กœ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๊ฐ€ ์˜ˆ์ƒ ์˜ค๋ฅ˜์ธ์ง€ ํ™•์ธํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด assert , ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ throw e

๋„ค, ๋ฐฉ๊ธˆ 3.18์—์„œ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์‹œํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” @action ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ์˜ ์‹ค์ œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋งํฌ ์ƒ์„ฑ ๋น„ํŠธ๋ฅผ ์ง€๋‚˜ ๋‹ค๋ฅธ ์ด๋ฆ„๊ณผ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์‰ฝ๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ์ค‘๋ณต ์ž‘์—… ์ด๋ฆ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰