2

我有 vuetify webpack 项目

在我的一个 vue 组件中,我使用 v-select 并将 :items 设置为名为“levels”的通用数字数组,并将 v-model 设置为包含通用数字的数据属性“level”

所以问题是,如果 'level' 用 prop 初始化,v-select 在启动时不显示初始值 - 如果 'level' 用常量初始化,则显示正常。像这样:

  props: ['initLevel'],
  data () {
    return {
      levels,
      level: this.initLevel
    }
  }

这不正确,但是:

...
level: 25
...

工作正常

v-select 用法是:

         <v-select
            label="Select Level"
            :items="levels"
            v-model="level"
            max-height="200"
            dense
            autocomplete
          >
        </v-select>

除了在启动问题时显示初始值外,v-select 工作正常

那么如何解决这个问题,它的原因是什么?

4

2 回答 2

8

好的,我发现问题出在类型中:levels 是一个整数数组,而 prop 作为字符串标准 html select 没有问题,但是 v-select 有!

于 2018-01-29T15:32:55.333 回答
0

我认为data()在任何属性值可用之前调用。

您可以尝试将初始化从这样的data()移动beforeMount()

props: ['initLevel'],

data() {
    return {
        levels: ...,
        level: 0
    }
},

beforeMount() {
     this.level = this.initLevel
}
于 2018-01-29T11:18:24.990 回答