@aquarius_8
Новичок в сфере IT

Почему не работает директива v-for в Vue.js?

Всем привет !

Имею вот такую проблему: при ответе от сервера, хочу записать его ответ в таблицу, используя директиву v-for в vue js)
Написал все необходимое но таблица не создается, хотя в консоли результат возвращается.
В чем может быть дело ?

Таблица с v-for находиться в блоке с классом "card" !
<template>
  <div class="container">
    <div v-if="!token">
      Вход в систему
      <input placeholder="Email" class="form-control" v-model="form.email" />
      <br />
      <input placeholder="Пароль" class="form-control" v-model="form.password" />
      <button class="btn btn-primary form-control" @click="login()">Вход</button>
    </div>
    <div v-else class="card"> 
      <button class="btn btn-outline-primary form-control" @click="logout()">Выход</button>
      <div class="card-header">accessToken</div>
      <div class="card-body font-xs">{{ token }}</div>
      <!-- <button class="btn btn-sm btn-success form-control" @click="userList()">
       ......
      </button>-->
      <!--   <table class="table table-striped table-dark">
               .....
        -->

     <div class="card">
        <button @click="Me()" class="from-control btn btn-outline-danger">Профиль пользователя</button>
       
        <table class="table table-striped table-dark">
          <thead>
            <tr>
              <th scope="col">ID</th>
              <th scope="col">ФИО</th>
              <th scope="col">Email</th>
              <th scope="col">Права доступа</th>
            </tr>
          </thead>
          <tbody>
            <tr v-for="user in users" :key="user.id">
              <td >{{ user.id }}</td>
              <td>{{ user.fio }}</td>
              <td>{{ user.email }}</td>
              <td>{{ user.isAdmin }}</td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  </div>
</template>


users = [];
 async Me() {
    const result = await this.$store.dispatch("me");
    this.users = result.data;
    console.log(result);
  }
async me({ state }, params){
      const { data } = await instance.get("/me",params);
      return data;
    },


61b3c6d267cfd497205179.png
На изображении ответ консоли, т.е. возвращается верно ! Но при нажатии кнопки ничего не происходит, элементы не заполняются в ячейки)

Буду благодарен за совет !
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
@cheeroque
По объекту v-for в общем случае тоже работает, массив не обязательно. Другое дело, что у вас users пустой. Вы в консоли выводите result, а users присваиваете result.data. Судя по скриншоту, свойства data в объекте results нет, так что в users у вас undefined.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Ну так в консоли у вас объект, а итерировать список надо...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы