首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何扩展Vue Storefront的核心模块

如何扩展Vue Storefront的核心模块
EN

Stack Overflow用户
提问于 2020-12-13 02:35:22
回答 1查看 411关注 0票数 2

我想覆盖来自购物车模块存储的操作。我正在尝试通过这个链接Extending and Overriding Modules Doc来扩展这个CartModule

我用以下代码创建了一个文件/src/modules/cart/index.ts

代码语言:javascript
复制
import { VueStorefrontModuleConfig, extendModule, VueStorefrontModule } from '@vue-storefront/core/lib/module'
import { CartModule } from '@vue-storefront/core/modules/cart'

import { cartModule } from './store'

const cartExtend: VueStorefrontModuleConfig = {
    key: 'cart',
    store: {modules: [{key: 'cart', module: cartModule}]},
    afterRegistration: function () {
        console.log('Cart module extended')
    }
}

extendModule(cartExtend)

export const registerModules: VueStorefrontModule[] = [CartModule]

我收到错误,CarModule类型与VueStorefrontModule不匹配

我也不知道下一步该怎么做才能让它变得有效。医生们对此并不清楚。请帮帮忙。谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-02-11 23:39:30

如果你想重写模块的操作,你不需要扩展模块,而是用存储

这里的是示例:

Vuestorefront有CartModule (在核心中),您需要更改动作代码refreshTotals

在文件/src/modules/cart/index.ts中编写代码

代码语言:javascript
复制
import {StorefrontModule} from '@vue-storefront/core/lib/modules';
import {extendStore} from '@vue-storefront/core/helpers';

const cartModule = {
    action: {
        async refreshTotals({dispatch}, payload) {
            //
            // your new (and better!) code ;-)
            //
        }
    },
}

export const MyAwesomeCart: StorefrontModule = function () {
    extendStore('cart', cartModule);
}

在最后一步中,注册这个新模块:

代码语言:javascript
复制
..
...
import {CartModule} from '@vue-storefront/core/modules/cart';
import {MyAwesomeCart} from "modules/cart/index";

export function registerClientModules() {
    registerModule(CartModule); // original module 
    registerModule(MyAwesomeCart); // your new overwiritng module

...
..
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65268462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档