반응형
VUE의 상위 구성 요소에서 모드 대화 상자 전환
따라서 상위 구성 요소에서 모달 대화상자를 전환하고 여기에 나와 있는 Stack Overflow Question about same Topic을 각 단계에서 시도했지만 여전히 모달 대화상자가 표시되지 않고 VUE 콘솔에서 볼 때 정의되지 않은 값도 있습니다.요소 섹션에서 모달 대화 상자 div는 생성되지 않습니다.
MY MODAL DIALOG가 웹 페이지의 요소 섹션에 표시되지 않고 정의되지 않은 프로펠러 값으로 Vue 콘솔에 표시됩니다.그러나 클릭 효과는 부모 컴포넌트에서 작동하고 있으며 div를 클릭하면 모달은 true로 설정됩니다.
부모 코드
<template>
<div class="collection">
<section class="section section-elements">
<div class="elements-outer" @click="openModal">
<CopyComponent v-bind:item="item"/>
</div>
</section>
<modal v-modal="modal"/>
</div>
</template>
<script>
import Modal from "../components/Modal.vue";
export default {
name: 'Collection',
components: {
Modal
},
data() {
return {
modal: false
}
},
methods: {
openModal() {
this.modal = !this.modal;
}
}
}
</script>
마이차일드 컴포함
<template>
<div v-if="value" class="modal">
<div class="body">
body
</div>
<div class="btn_cancel" @click="modalToggle">
<i class="icon icon-cancel" />
</div>
</div>
</template>
<script>
export default {
name: "Modal",
props: ["value"],
methods: {
modalToggle() {
this.$emit("input", !this.value);
}
}
};
</script>
내가 뭘 놓친거야?
제발 도와주세요, 고마워요.
소품 이름value
따라서 부모 컴포넌트에서 전달하고 전환 모달에 대한 이벤트도 할당해야 합니다.
<modal :value="modal" @toggle="modalToggle"/>
그리고 당신의 자녀는:
<template>
<div v-if="value" class="modal">
<div class="body">
body
</div>
<div class="btn_cancel" @click="modalToggle">
<i class="icon icon-cancel" />
</div>
</div>
</template>
<script>
export default {
name: "Modal",
props: ["value"],
methods: {
modalToggle() {
this.$emit("toggle");
}
}
}
</script>
철자가 틀렸습니다v-model
에<modal v-modal="modal"/>
,그럴 것 같네요.<modal v-model="modal"/>
언급URL : https://stackoverflow.com/questions/61099868/toggle-modal-dialog-from-parent-component-in-vue
반응형
'sourcecode' 카테고리의 다른 글
GCC -g vs -g3 GDB 플래그:차이점은 무엇입니까? (0) | 2022.08.29 |
---|---|
동일한 페이지에서 서로 다른 쿼리에 vue-apollo 구성 요소 사용 (0) | 2022.08.29 |
nuxt.js 컴포넌트의 자동 Import는 퍼포먼스에 악영향을 미칩니까? (0) | 2022.08.29 |
Vue j는 하나의 요소에 여러 스타일 속성을 바인딩합니다. (0) | 2022.08.29 |
다른 모듈로부터의 변환 커밋 (0) | 2022.08.29 |