下面的代码基于vue3,使用了类型脚本.

export interface TenantDto {
  uuid: string;
  name: string;
}

export const useTenantStore = defineStore('tenant', {
  state: () => ({
    tenants: [],
  }),
  actions: {
    setMyTenants: (payload: TenantDto[]) => {
      this.tenants = payload;
    },
  }
);

在生产环境中编译代码会在线路上产生错误

this.tenants = payload;

错误是说对象可能"未定义".

我该怎么把它带到身边呢?

推荐答案

您无法使用箭头函数来定义操作,因为它依赖于this关键字.

try 这个:

export const useTenantStore = defineStore('tenant', {
  state: () => ({
    tenants: [],
  }),
  actions: {
    setMyTenants(payload: TenantDto[]) {
      this.tenants = payload;
    }
  }
});

Javascript相关问答推荐

序列化我的数据并发送httpPost请求后,控制器收到空参数

获取POS餐厅会话用户/收银员

错误:找不到react-redux上下文值;请确保该组件包装在React原生Expo应用程序中的提供者中

为什么在获取回调内设置状态(不会)会导致无限循环?

在分区内迭代分区

react 路由加载程序行为

成帧器运动中的运动组件为何以收件箱开始?

每次子路由重定向都会调用父加载器函数

Google图表时间轴—更改hAxis文本 colored颜色

使用i18next在React中不重新加载翻译动态数据的问题

在服务器上放置了Create Reaction App Build之后的空白页面

使用Java脚本根据按下的按钮更改S文本

使用ThreeJ渲染的形状具有抖动/模糊的边缘

为什么我的getAsFile()方法返回空?

钛中的onClick事件需要在两次点击之间等待几秒钟

如何在我的Next.js项目中.blob()我的图像文件?

向数组中的对象添加键而不改变原始变量

SPAN不会在点击时关闭模式,尽管它们可以发送日志(log)等

MongoDB受困于太多的数据

如何在下一个js中更改每个标记APEXCHARTS图表的 colored颜色