У меня есть динамическая форма, которая содержит список элементов, указанных следующим образом:
element1: { name: "property1", value: "value1", defaultValue: "defaultvalue1", usingDefaultValue: true, type: "String/Enum/Int/Long }
Этот список элементов постоянно публикуется через WebSocket и сохраняется в магазине Vuex. Каждый элемент соответствует входу, который отображает либо value
, либо defaultValue
, в зависимости от переключателя. Эти значения привязываются к полям ввода с помощью v-model
.
Я использую библиотеку vuex-map-fields
, чтобы помочь с динамическими многорядными полями. Они определены следующим образом:
computed: {
...mapMultiRowFields(`elementsStore`, ["elements"])
},
Поля передаются в компонент списка с помощью v-for
:
<v-layout v-for="element in elements" :key="element.name">
<element-list-item :element="element"></element-list-item>
</v-layout>
Теперь, следующее работает отлично, как я ожидаю :
<v-text-field
v-model="element.useDefaultValue ? element.defaultValue : element.value"
</v-text-field>
Однако всякий раз, когда я использую npm run lint
, я получаю следующее сообщение об ошибке:
error: 'v-model' directives require the attribute value which is valid as LHS (vue/valid-v-model)
Есть ли лучший способ добиться такого же поведения?
Я собираюсь предположить, что сообщение об ошибке есть по уважительной причине.
Один альтернативный подход, который я попробовал, - это использование вычисляемого свойства. Тем не менее, это не сработало, и сразу же отображаются ошибки в консоли.