props으로 가져온 반응형 변수 업데이트 이슈
2151
投稿した質問数 6
안녕하세요? 항상 좋은 강의 감사드립니다🙂
아래와 같은 상황에서 warning이 발생하고 있는데 답변주시면 정말 감사하겠습니다 ㅠㅠ
부모 컴포넌트에서 자식 컴포넌트로 prop으로 값을 넘겨줌
<ChildVuev-model:my-value="value"
/>
<script setup>
import { ref } from "vue";
const value = ref("");
</script>자식 컴포넌트에서 toRef를 이용하여 반응성을 잃지 않도록 구조분해 할당
import { toRef } from "vue";
const props = defineProps({myValue: String,
});
const myValueInput = toRef(props, "myValue");
구조분해 할당한 반응형 변수를 자식 컴포넌트 내 text input에 binding. 입력값이 변경되는 경우 emit을 통해 업데이트
<input type="text"@input="$emit('update:myValue', $event.target.value)"
v-model="myValueInput" />
위와 같이 개발을 하니 제가 생각했던대로 동작은 잘 하는데요... 계속 아래와 같은 warning이 뜨고 있습니다 ㅠㅠ
reactivity.esm-bundler.js:4 [Vue warn] Set operation on key "myValue" failed: target is readonly.

강의에서 짚어주신 점들(자식 컴포넌트 내부에서 props 직접변경 X, 반응형을 잃지 않는 구조분해 할당 등)을 제 나름대로 고려했는데 왜 저런 warning이 지속적으로 뜨는 걸까요...?
답변주심 정말 감사드리겠습니다 ㅠㅠ
+) 혹시 다음 강의 계획은 어떻게 되시나요?
回答 2
3
안녕하세요 :)
이유 : 자식 컴포넌트에서 props를 직접적으로 변경했기 때문
설명
<input type="text"
@input="$emit('update:myValue', $event.target.value)"
v-model="myValueInput" />v-model(양방향) 대신 :value(단반향) 바인딩으로 설정해야해요~!
v-model 에서 myValueInput(Props 데이터)를 직접적으로 변경하기때문에용~!
그리고 다음 강의는
Quasar(based Vue3)로 UI를 만드는 강의와
Vue3 + Quasar + Firebase로 커뮤니티 사이트를 만드는 강의를 준비하고 있어요~!
감사합니다 🙂
1
Vue3 + Quasar + Firebase !!!
군침이 도네요 강사님 ... 화이팅입니다 !!!
composable: alert 창이 안떠요
0
714
2
Nuxtjs3 강의 계획은 없으신가요?
0
529
1
axios 컴포저블 함수 구현 2에서
0
472
1
composable과 pinia store - 둘 중 하나를 선택하는 기준
1
1596
1
코드 수정 문의
0
441
1
강의교안 수정 요청드립니다.
0
592
1
Pinia 사용 시 composition api
0
1394
1
createPost()의 async, awiat
0
529
1
slot 사용 관련 문의
1
415
1
Filter 구현하기에서 input v-model 질문 있습니다.
0
553
2
라우터 해시 모드 추가 질문
0
543
1
네비게이션 가드 및 플러그인 관련 질문입니다.
0
368
1
트랜지션(transition) 관련 질문드립니다.
0
549
1
json-server에 대해 궁금한게 있습니다~
0
381
1
Vue3 에서 router-link 에 이벤트 추가 방법
0
1194
1
기본편에도 crud 하는게 있을까요?
0
401
1
jsconfig.js 에러
0
385
1
headers 값을 못찾아요~
0
381
1
vite vue3에서 ie safari babel
0
773
1
composables 전역등록
0
299
1
stores 다른 파일에서 state 가져오기
0
442
1
computed에서 인자 전달방법
0
573
1
components.d.ts 자동작성 안됨
0
718
1
cors 에러
0
573
1

