本文介绍: 在组件中使用时,如果直接操作store.getaddcount()则页面上数据变动不生效。如上述代码,在actions中定义getaddcount方法 对count做了操作。解决:引入pinia中的storeToRefs。使store中的变量变为响应式的即可;
import { defineStore } from "pinia";
import { useother } from "./otherstore";
export const useStore = defineStore("main", {
state: () => {
return {
count: 3,
name: "zhangs",
isadmin: true,
};
},
getters: {
addcount(state) {
// return state.count+3
const oth = useother();
return this.count + oth.count;
},
},
actions: {
getaddcount(state) {
console.log(state)
this.count++
},
getnumcount(num) {
this.count+=num
}
},
});
如上述代码,在actions中定义getaddcount方法 对count做了操作
<template>
<div>
piniatest page --<br/>
count---{{ count }}---{{ addcount }}<br/>
<button @click="handleadd">添加count</button>
<button @click="handleaddnum(3)">添加num的count</button>
</div>
</template>
<script setup>
import {useStore} from '@/store'
import { storeToRefs } from 'pinia';
const store = useStore();
const {count,name,isadmin,addcount} = storeToRefs(store)
// const count = store.count
// const addcount = store.addcount
const handleadd = () => {
// console.log(99)
store.getaddcount()
}
const handleaddnum = (num)=> {
store.getnumcount(num)
}
</script>
<style lang="scss" scoped>
</style>
在组件中使用时,如果直接操作store.getaddcount()则页面上数据变动不生效
原文地址:https://blog.csdn.net/weixin_44707050/article/details/128789232
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_40200.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。