Vue: vue-class-component๋ฅผ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฉ”์†Œ๋“œ๋Š” $ref๋กœ ์ธ์‹๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 01์›” 23์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: vuejs/vue

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

error TS2339: Property 'show' does not exist on type 'Element | Vue | Vue[] | Element[]'

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค„์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

this.$refs['myDialog'].show()

์ด show ๋Š” vue-class-component๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TypeScript์—์„œ ๊ตฌํ˜„ํ•œ ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค. Vue๋ฅผ ํ™•์žฅํ•˜๋Š” ํด๋ž˜์Šค์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ./types/vue.d.ts ์—ฌ๊ธฐ ์—์„œ ๋ผ์ธ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

readonly $refs: { [key: string]: [V extends Vue] | Element | Array<V extends Vue> | Array<Element>};

ํ•˜์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ๋งŒ ํ•œ๋‹ค๊ณ  ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ ๊ทธ๊ฒƒ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ ํ•ด์š”!

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

<YourComonent>this.$refs ์„ ์บ์ŠคํŒ…ํ•˜๊ฑฐ๋‚˜ $refs ๋ฅผ ๊ตฌ์ฒดํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
https://github.com/HerringtonDarkholme/av-ts/wiki/FAQ#2 -property-reification

๋ชจ๋“  3 ๋Œ“๊ธ€

<YourComonent>this.$refs ์„ ์บ์ŠคํŒ…ํ•˜๊ฑฐ๋‚˜ $refs ๋ฅผ ๊ตฌ์ฒดํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
https://github.com/HerringtonDarkholme/av-ts/wiki/FAQ#2 -property-reification

๊ท€ํ•˜์˜ ์„ค๋ช…์€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ต๋ณ€์„ ๋‹จ๊ณ„๋ณ„๋กœ ๋ณด์—ฌ์ฃผ์„ธ์š”. pls.

ts+ vue์— ๋Œ€ํ•ด ์ •๋ง ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

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