Как исправить ошибку "TypeError: Cannot convert undefined or null to object"?

введите сюда описание изображенияВозникает ошибка Error in mounted hook: "TypeError: Cannot convert undefined or null to object" и Error in mounted hook: "TypeError: Cannot convert undefined or null to object"

Думал это иза использования Object.keys.

Но, перепроверил на хуке beforeMountданные уже есть, а Object.keys делаю на хуке mounted

 <template>
  <div class="user-rating">
    <el-row>
      <el-col :span="20">
        <h1 class="user-rating__title">Рейтинг пользователей</h1>
        <hr />

        <el-table
          :data="tableExcessWeight"
          header-row-class-name="table-header"
          row-class-name="table-rows-name"
          :header-cell-style="{ 'background-color': '#ffb572' }"
          :cell-style="{ 'background-color': '#ffb5727F' }"
          style="width: 100%"
          height="100%"
        >
          <el-table-column label="Аватарка">
            <template slot-scope="scope">
              <img
                v-if="scope.row.imageData"
                class="user-rating__avatar"
                :src="scope.row.imageData"
              />
              <img
                v-else-if="scope.row.gender === 'мужской'"
                class="user-rating__avatar"
                src="../assets/img/icons/avatar-man.jpg"
              />
              <img v-else class="user-rating__avatar" src="../assets/img/icons/avatar-woman.jpg" />
            </template>
          </el-table-column>
          <el-table-column label="Возраст">
            <template slot-scope="scope">
              <p v-if="scope.row.age">{{ scope.row.age }}</p>
              <p v-else>Не указан</p>
            </template>
          </el-table-column>
          <el-table-column label="Имя">
            <template slot-scope="scope">
              <p v-if="scope.row.name">{{ scope.row.name }}</p>
              <p v-else-if="scope.row.gender === 'мужской'">Неопознанный кот</p>
              <p v-else>Неопознанная кошка</p>
            </template>
          </el-table-column>
          <el-table-column label="e-mail">
            <template slot-scope="scope">
              {{ scope.row.email }}
            </template>
          </el-table-column>
          <el-table-column prop="sumCalories" label="Потерянно (кал.)"></el-table-column>
          <el-table-column prop="sumKg" label="Потерянно (кг.)"> </el-table-column>
        </el-table>
      </el-col>
    </el-row>
  </div>
</template>

<script>
export default {
  name: 'UserRating',
  data() {
    return {
      // Данные пользователей с избыточным весом (которые сбрасывают)
      tableExcessWeight: \[\],
      // Данные пользователей с дефицитом веса (которые набирают)
      tableDeficitWeight: \[\],
      allUsers: \[\],
    };
  },
  methods: {
    // Подсчет каллорий сброшенных пользователем за время пользования сервисом
    totalCaloriesBurned() {
      for (let i = 0; i < this.tableExcessWeight.length; i += 1) {
        const userСalories = Object.values(this.tableExcessWeight\[i\].userСalories);
        const sumCalories = userСalories.reduce((total, obj) => total + obj.differencePerDay, 0);
        this.tableExcessWeight\[i\].sumCalories = `${Math.abs(sumCalories)} кал.`;
        this.tableExcessWeight\[i\].sumKg = `${Math.abs(sumCalories / 7700).toFixed(2)} кг.`;
      }

      for (let i = 0; i < this.tableDeficitWeight.length; i += 1) {
        const userСalories = Object.values(this.tableDeficitWeight\[i\].userСalories);
        const sumCalories = userСalories.reduce((total, obj) => total + obj.differencePerDay, 0);
        this.tableDeficitWeight\[i\].sumCalories = `${Math.abs(sumCalories)} кал.`;
        this.tableDeficitWeight\[i\].sumKg = `${Math.abs(sumCalories / 7700).toFixed(2)} кг.`;
      }
    },
  },
  created() {
    this.$store.dispatch('getListAllUsers');
    // Ключи для итериции по пользователям.
    this.allUsers = this.$store.state.UserInfoDatabase.listAllUsers;
  },
  beforeMount() {
    console.log(this.allUsers);
  },
  mounted() {
    // console.log(this.tableExcessWeight);
    // console.log(this.tableDeficitWeight);
    const keyUsers = Object.keys(this.allUsers);
    for (let i = 0; i < keyUsers.length; i += 1) {
      // Объект данных по каждому пользователю
      const user = this.allUsers\[keyUsers\[i\]\];
      // Если пользователь фиксировал свои кал.
      const keyDate = Object.keys(user.userСalories)\[Object.keys(user.userСalories).length - 1\];

      // Весовой статус пользователя
      const weightUserStatus = user.userСalories\[keyDate\].weightUserStatus;
      // У пользователя есть поле userСalories и он имеет дефицит веса
      if (user.userСalories && weightUserStatus === 'deficitWeight') {
        // Пушим в массив для людей с дефицитом веса.
        this.tableDeficitWeight.push(user);
      } else if (user.userСalories && weightUserStatus === 'excessWeight') {
        // В противном случае, пушим в массив для людей с избытком веса.
        this.tableExcessWeight.push(user);
      }
    }
    this.totalCaloriesBurned();
  },
};
</script>][1]][1]

Ответы (0 шт):