vue使用计算属性的get,set实现双向绑定到VUEX 失效

发布于 2022-09-11 20:28:18 字数 676 浏览 10 评论 0

页面:

<el-input v-model="cPlaceholder"></el-input>
computed:{
    cPlaceholder:{
      get(){
        return this.$store.state.currentInputFrom.placeholder
      },
      set(val){
        this.$store.commit('setPlaceholder', val)
      }
    }
}

VUEX:

state: {
    currentInputFrom:{
    }
},
mutations: {
    setPlaceholder(state, value){
      state.currentInputFrom.placeholder = value
    }
}

操作结果:
在页面这个输入框输入内容之后,VUE设置成功,但是页面上不显示
图片描述

补充一下
补充一个新的发现,用原生的input可以实现,我这个是用了ui库的input

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

心欲静而疯不止 2022-09-18 20:28:18
{
    state: {
        currentInputFrom:{
           placeholder: '', // !
        }
    },
    mutations: {
        setPlaceholder(state, value){
          state.currentInputFrom.placeholder = value
        }
    }
}
拥抱没勇气 2022-09-18 20:28:18

state 中需要给 placeholder 默认值,因为 vue 的响应式系统依赖于数据的初始化给每一个 key 赋值。

一直在等你来 2022-09-18 20:28:18

看看是不是这样原因导致的
https://cn.vuejs.org/v2/guide...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文