반응형
대신 프로펠러 값을 기반으로 데이터 또는 계산된 속성을 사용하십시오.Vue JS
Vue에서 "variable" 값을 변경하려고 하는데 버튼을 클릭하면 콘솔에 다음과 같은 메시지가 표시됩니다.
[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "menuOpen"
나는 이 문제를 어떻게 해결해야 할지 모르겠다.
내 파일.vue:
<template>
<button v-on:click="changeValue()">ALTERAR</button>
</template>
<script>
export default {
name: 'layout',
props: [ 'menuOpen' ],
methods: {
changeValue: function () {
this.menuOpen = !this.menuOpen
}
},
}
</script>
누구 도와줄 사람 없어요?고마워요.
경고는 아주 명확합니다.고객님의 고객명changeValue속성 값을 변경하는 메서드,menuOpen이렇게 하면 값이 컴포넌트 내부로 변경되지만 부모 컴포넌트가 어떤 이유로든 재렌더해야 하는 경우 컴포넌트 내부의 값은 컴포넌트 외부의 현재 상태로 덮어씁니다.
일반적으로 내부 사용을 위해 값의 복사본을 만들어 이 문제를 처리합니다.
export default {
name: 'layout',
props: [ 'menuOpen' ],
data(){
return {
isOpen: this.menuOpen
}
},
methods: {
changeValue: function () {
this.isOpen= !this.isOpen
}
},
}
값의 변경을 부모에게 전달할 필요가 있는 경우는,$emit거스름돈
changeValue: function () {
this.isOpen= !this.isOpen
this.$emit('menu-open', this.isOpen)
}
언급URL : https://stackoverflow.com/questions/43959824/instead-use-a-data-or-computed-property-based-on-the-props-value-vue-js
반응형
'programing' 카테고리의 다른 글
| VueJS 구문: 마운트에서 실행 중인 메서드 (0) | 2022.07.18 |
|---|---|
| Java에서 명령줄 인수를 해석하려면 어떻게 해야 합니까? (0) | 2022.07.18 |
| 슈퍼 하이 퍼포먼스 C/C++ 해시 맵(표, 사전) (0) | 2022.07.18 |
| instance of와 Class.isAssignableFrom(...)의 차이점은 무엇입니까? (0) | 2022.07.17 |
| TypeScript를 사용하여 Vue 컴포넌트를 프로그래밍 방식으로 생성합니다. (0) | 2022.07.17 |