오류 해결
[vue3] v-tooltip 조건절(v-if) 적용안될 때
송채채
2023. 5. 21. 22:06
엄청 골머리를 앓다가 해결함
div에 툴팁을 주고, 툴팁내용을 출력하는데 조건에 따라 div가 안보일때도 있음
근데 자꾸 에러가 나서 3시간동안 디버깅한 결과, 툴팁 내용을 그냥
<v-tooltip>{{ 배열 변수}}</tooltip> 이렇게 줬더니 여기는 조건 상관없이 렌더링이 계속 돼서 오류가 났던 거였다.
아래처럼 툴팁 안에 div를 설정하고 v-if 설정하니까 드디어 해결....
<div class="heatmap" v-if="조건 === 'Y'">
<v-tooltip activator="parent" location="bottom">
<div v-if="조건.length !== 0">{{ 배열[index][subIndex] }}</div>
</v-tooltip>
</div>
<div class="heatmap" v-else-if="조건 === 'N'">
<v-tooltip activator="parent" location="bottom">
<div v-if="조건.length !== 0">{{ 배열[index][subIndex] }}</div>
</v-tooltip>
</div>
chatGPT로 계속 질문해가면서 고쳤다. 아래는 GPT 답변
툴팁의 렌더링을 조건부로 제어하기 위해 `v-if` 조건을 추가한 것은 올바른 접근입니다. 그러나 `v-if` 조건을 통해 툴팁의 렌더링을 숨기려면 해당 툴팁을 감싸고 있는 `div` 요소에 `v-tooltip`를 적용해야 합니다.
현재 코드에서는 `v-tooltip`를 직접 `div` 요소에 적용하고 있으므로 `v-if` 조건에 관계없이 툴팁이 렌더링되고 있습니다. 이로 인해 오류가 발생합니다.
올바른 접근은 `v-tooltip`를 `div` 요소의 하위 요소로 옮기고, `div` 요소에 `v-if` 조건을 추가하여 조건이 충족되지 않을 때 해당 `div` 요소와 하위 요소들이 렌더링되지 않도록 해야 합니다. 아래는 수정된 코드 예시입니다:
반응형