vue.js - 如果使用 vuex,如何使用 v 模型
问题描述
如何在 vuex 上使用 v-model,在这种情况下,仅在此 vuex 中单击按钮时显示模态框也有单独的模块
这是索引模块
import createPersistedState from 'vuex-persistedstate'
import Vue from 'vue'
import Vuex from 'vuex'
import authentication from './authentication'
import products from './products'
import projects from './projects'
Vue.use(Vuex)
export default new Vuex.Store({
strict: true,
state: {
baseUrl: '/api',
// baseUrl: 'http://localhost:3333/api',
},
mutations: {
},
actions: {
},
modules: {
authentication,
products,
projects,
},
plugins: [
createPersistedState(),
],
})
这是我的模块
import HTTP from '../http';
export default {
namespaced: true,
state:{
dialog: false,
},
getters: {
dialog(state){
console.log(state.dialog)
return state.dialog
}
},
mutations: {
closeCard(state){
state.dialog=false;
console.log(state.dialog);
}
}
}
我尝试了地图状态和地图获取器都不起作用,这是我的 vue 代码
v-model="dialog"
width="500"
我尝试使用地图状态或地图吸气剂,但两者都不起作用
import Test from '/components/Test'
export default {
components:{
Test
},
computed: {
dialog:{
get() {
return this.$store.state.dialog.products
},
},
map State('products',[
'dialog'
]),
},
methods:{
map Actions('products',[
'close Card',
])
}
}
这是我的错误
Computed property "dialog" was assigned to but it has no setter.
found in
解决方案
将计算属性直接绑定到 v-model 是一种不好的做法,因为计算值没有默认设置器。
您将需要为您的计算值实现一个设置器。你可以在这里阅读。
您应该实现一个更改dialog
属性值的状态操作,然后在您的 setter 中调用它(并将其设置为true
or false
,具体取决于具体情况。
推荐阅读
- collision-detection - 一次对多个对象进行碰撞检测
- python - Python/JSON 密钥错误
- macos - 如何在 Xcode 10 中构建 Apple“开源”项目
- r - 如何计算列中唯一词的频率?
- excel - 将 2 个数组与行的值匹配
- node.js - 离子框架:创建项目时离子构建失败(v4.12.0)
- java - 改进关于素数的代码的建议?
- neo4j - 如何在 SDN 5.x 中创建类似于 4.x 中的 Neo4jOperations 的动态密码查询
- angular - ./node_modules/@types/lodash/common/object.d.ts (1689,12):找不到名称“排除”
- json - 使用 pyspark 解析 JSON 时嵌套动态模式不起作用