TypeError: Cannot convert undefined or null to object

xxdmua / 2023-04-28 / 原文

TypeError: Cannot convert undefined or null to object

这个错误通常出现在JavaScript代码中,意思是试图将一个未定义或空值的变量转换为对象时出现了错误。

这个错误通常会在以下情况下出现:

  1. 尝试访问未定义或空值的变量属性。
  2. 尝试将未定义或空值的变量传递给期望对象的函数。
  3. 尝试使用未定义或空值的变量创建新的对象或数组。

为了解决这个错误,你需要确保在使用变量之前它已经被正确地定义和初始化。可以使用typeof操作符来检查变量是否已经定义,或使用条件语句来检查变量是否为null或undefined。另外,你可以使用默认值来确保变量不为空,例如使用默认对象{}或空数组[]。

store文件中
const data = ref<Date>({} as Date);
export interface Date {
  myInfo: User;
  users: Array<User>;
  msgslist: Array<Msg>;
  msgslastlist: Array<UserMsg>;
}

修改成

  const data = ref<Date>({
    myInfo: {
      account: "",
      avatar: "",
      createTime: 0,
      gender: "",
      nick: "",
      updateTime: 0,
    },
    users: [],
    msgslist: [
      /* 初始值 */
    ],
    msgslastlist: [],
  });