1

我想实现以下几点:我有一个表单输入,需要将其绑定到vuex中相应存储状态的值。

  • 每当字段中的值通过用户交互发生更改时,存储都会被更新的值覆盖。
  • 每当在 vuex 存储中更新值时,该字段都会显示更新后的值

下面的代码片段应该很好地描述了它:

<template>
    <b-form-input
      :id="inputField.id"
      :placeholder="inputField.placeholder"
      :disabled="inputField.disabled"
      v-model="input"
</template>

<script lang="ts">
    import ...

    @Component
    export default class InputWrapper extends Vue {
        @Prop() element!: Input

        inputField: Input = new Input(this.element)

        get input (): string {
            return this.$store.getters.getInputById(this.inputField.id).value
        }

        set input (value: string) {
            this.inputField.value = value
            this.$store.commit('setInput', this.inputField)
        }
    }

</script>

上面的示例将存储用户在 GUI 中所做的每次更改的更新值,但是,如果我在 vuex 中更改相应存储实例的值,该字段仍将显示旧值而不是更新值。

如何实现顶部列表中描述的功能?这对于基于类的组件有可能吗?

4

1 回答 1

1

您是否已初始化您的商店价值?具有未初始化的存储值通常会导致非反应性属性,即使在 vuex 存储中也是如此。

于 2021-03-22T21:35:28.630 回答