1

在商店里,我有两个相关的模型:CompanyUser

用户

import { Model } from '@vuex-orm/core';
import { Company } from './models';

export class User extends Model {
  static entity = 'users';
  static fields() {
    return {
      company: this.belongsTo(Company, 'company_id'),
    };
  }
}
export default User;

公司

import { Model } from '@vuex-orm/core';
import { User } from './models';

export class Company extends Model {
  // This is the name used as module name of the Vuex Store.
  static entity = 'companies';
  static fields() {
    return {
      account_manager: this.belongsTo(User, 'account_manager_id'),
    };
  }
}
export default Company;

为了避免依赖循环,我密切关注https://vuex-orm.org/guide/model/single-table-inheritance.html#solution-how-to-break-cyclesCompany中的解决方案并 导入Usermodels.js

楷模

export * from './company';
export * from './user';

然而,我仍然从 linter 中得到依赖循环错误。

我没有主意了。

代码示例:https ://github.com/mareksmakosz/vuex-orm-dependency-cycle

4

1 回答 1

1

这只是 ESLint 执行规则,如果您使用的是 airbnb,则无法避免。考虑eslint:recommended一下这是否真的很痛苦。

或者,如果您想将 airbnb 和您的模型分开,我建议您删除导入并使用实体作为字符串来定义您的关系。

this.belongsTo('companies', 'company_id')
this.belongsTo('users', 'account_manager_id')
于 2020-05-17T22:49:26.027 回答