오류 해결

[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` 요소와 하위 요소들이 렌더링되지 않도록 해야 합니다. 아래는 수정된 코드 예시입니다:

반응형