vuetify v-text-field prepend-inner 插槽的图标不会随着输入状态的变化而改变颜色

vuetify v-text-field prepend-inner slot's icon isn't changing color with input state changes

我想使用 phone 图标 (mdi-phone) 作为 v-text-field 中的 prepend-inner

我可以像下面这样写,一切正常:

<v-text-field
    type="tel"
    v-if="!numberIsEntered"
    label="phone number"
    clearable
    required
    color="#ff5b1b"
    :rules="[
        rules.required,
        rules.internationalNumber,
        rules.nationalNumber
    ]"
    class="mt-10 mb-15"
    v-model="userLoginDetails.userNumber"
    outlined></v-text-field>

这段代码中的图标会随着输入状态的改变而改变颜色。如果出现错误并且输入颜色变为红色,则图标的颜色也变为红色。


但我想要旋转图标,所以我在 <v-text-field></v-text-field> 中添加了以下代码:

  <template v-slot:prepend-inner>
      <v-icon style="transform:rotateY(-180deg)">mdi-phone</v-icon>
  </template>

现在图标的颜色不会随着不同的输入状态(例如:错误,...)而改变。

这是一个错误还是有办法修复它?


编辑:此问题是由 vuetify 使用 dark 主题属性覆盖图标样式引起的。我重写了代码如下:

<template v-slot:prepend-inner>
    <i aria-hidden="true" class="v-icon notranslate mdi mdi-phone" 
        style="transform: rotateY(-180deg);"></i>
</template>

尝试将图标名称作为道具传递,以便采用与输入相同的颜色,然后定义一个样式规则来旋转​​图标:

<v-text-field
    type="tel"
     class="phone-input"
     prepend-inner-icon="mdi-phone"
   ...
    outlined></v-text-field>

风格:

.phone-input .v-icon{
  transform:rotateY(-180deg)
}

LIVE DEMO