Vuetify가 툴팁을 트리거합니다.
Sep 25 2020
vuetify를 사용하고 있으며 버튼 위에 도구 설명이 있습니다. 마우스를 올려 놓거나 클릭 할 때 툴팁을 표시하지 않고 일부 이벤트가 트리거되면 툴팁을 표시하고 싶습니다.
translate.vue
<v-tooltip v-model="item.showTooltip" top>
<template v-slot:activator="{}">
<v-btn @click="translateItem(item)"> Call API to translate</v-btn>
</template>
<span>API quota limit has been reached</span>
</v-tooltip>
<script>
export default(){
props: {
item: { default: Objet}
}
methods: {
translateItem: function (item) {
axios
.post(baseURL + "/translateAPI", {
text: item.originTrad;
})
.then((res) => {
if (apiQuotaLimitReached(res) {
// If limit is reached I want to show the tooltip for some time
item.showTooltip = true;
setTimeout(() => {item.showTooltip = false;}, 3000);
} else { ..... }}}
</script>
itemSelect.vue (객체 항목을 만든 다음 라우터 푸시를 사용하여 번역 페이지로 전송)
<script>
export default(){
methods: {
createItem: function () {
item.originTrad = "the text to translate"
....
item.showTooltip = false;
this.$router.push({
name: "translate",
params: {
"item": item,
},
}); }}
</script>
당신이 볼 수 있듯이 나는를 제거 v-slot:activator="{ on }"하고 v-on="on"난 exemple에 발견 :https://vuetifyjs.com/fr-FR/components/tooltips/, 마우스 오버시 툴팁을 표시하고 싶지 않기 때문입니다. 하지만 예상대로 작동하지 않고 툴팁이 제대로 표시되지 않습니다. 약간의 도움이 좋을 것입니다 :)
답변
1 Laurens Sep 25 2020 at 05:23
우선, 자식 구성 요소에서 소품을 변경하려고합니다. 이렇게하면 안됩니다.
[Vue warn] : 부모 컴포넌트가 다시 렌더링 될 때마다 값을 덮어 쓰게되므로 prop을 직접 변경하지 마십시오. 대신 소품의 값에 따라 데이터 또는 계산 된 속성을 사용하십시오. 변경되는 소품 : "item.showTooltip"
그래서 (항목 perse의 속성 일 필요는 없습니다) showTooltip에 대해 별도의 데이터 변수를함으로써 시작하고 (물론 변화의 발생을 확인하려면 true로 설정 시도 v-model="item.showTooltip"에 v-model="showTooltip"V-툴팁에)