Всё функционирует, и часть массива выводится, однако в консоли возникает ошибка: <br/> <pre><code>TypeError: Cannot read properties of undefined (reading 'slice') at Proxy.JA (discordSection.vue:21:41) at Fe (runtime-core.esm-bundler.js:6322:16) at l [as fn] (runtime-core.esm-bundler.js:4997:46) at l.run (reactivity.esm-bundler.js:177:19) at F.t.update (runtime-core.esm-bundler.js:5128:16) at F (runtime-core.esm-bundler.js:5138:5) at $ (runtime-core.esm-bundler.js:4906:7) at D (runtime-core.esm-bundler.js:4860:9) at v (runtime-core.esm-bundler.js:4378:11) at L (runtime-core.esm-bundler.js:4610:7)</code></pre> <br/> Ошибка возникает в строке <b>discordSection.vue:21</b>: <br/> <pre><code class="javascript"><div v-for="item in discordData.members.slice(-22)" :key="item.id" class="col align-self-center mb-3"></code></pre> <br/> Вот содержимое <b>discordData.members</b>: <br/> <pre><code>[ { "id": "0", "username": ".† ghøst", "discriminator": "0000", "avatar": null, "status": "dnd", "avatar_url": "https://cdn.discordapp.com/widget-avatars/m7broueekGmC8Q25TOcmU4pJVGn_vPxnUFfCWbDdEt0/48QTTlvurZD_QEruB2h3k-DGABje2_L7gdCeCaWmyECYf7LXLSeFfaWdNOyNMNcfDJ1rijT7t-XJ1seoCvrDtF9pMaYzDZ6ZkKIC1V5UUUSdhQrmkeQqsq35jTSBqvZ3O78HTpPGvPWDlg" }, { "id": "1", "username": "AgtCarl", "discriminator": "0000", "avatar": null, "status": "online", "avatar_url": "https://cdn.discordapp.com/widget-avatars/Yim46hrE1WOg2AvEWF9YshsQZzG6D0f5pVSeFop-Xi8/E9QQ4qyhSOyytNgN_Cu5Lit8JguUfZHjtTxcO12GXpTwg-Py2ZWbH6h3B9RzQiOG3zwBzVMqeYYNfefJH16FA49KaqCm2ux2IDFVpOCyRx-cnPoTYso8f2gimR3Nc7r6SmI5WS6_tUD1eA" }, {
Ошибка `TypeError: Cannot read properties of undefined (reading 'slice')` указывает на то, что в момент доступа к `discordData.members` значение `discordData` или `discordData.members` является `undefined`. Это может происходить по нескольким причинам, например: 1. **`discordData` еще не инициализировано**: При первом рендере компонента `discordData` может быть `undefined` или не содержать `members`. 2. **Асинхронная загрузка данных**: Если `discordData` загружается асинхронно (например, при помощи API), то в момент первого рендера компонента данные могут еще не быть доступны. Чтобы избежать этой ошибки, вы можете добавить проверку на наличие свойства `members` в объекте `discordData` перед доступом к нему. Вот несколько способов исправить эту ошибку: ### Способ 1: Проверка на наличие Вы можете использовать проверку с помощью условного оператора: ```html <div v-for="item in discordData.members ? discordData.members.slice(-22) : []" :key="item.id" class="col align-self-center mb-3"> <!-- Ваш код --> </div> ``` Так, если `discordData.members` еще не определено, будет возвращен пустой массив вместо `undefined`, что предотвратит ошибку. ### Способ 2: Инициализация данных Попробуйте инициализировать `discordData` с пустым массивом для `members`: ```javascript data() { return { discordData: { members: [] // Инициализация с пустым массивом } }; } ``` ### Способ 3: Использование computed Можно также создать вычисляемое свойство, которое будет обрабатывать отображение данных: ```javascript computed: { membersToShow() { return this.discordData.members ? this.discordData.members.slice(-22) : []; } } ``` И затем в вашем шаблоне использовать: ```html <div v-for="item in membersToShow" :key="item.id" class="col align-self-center mb-3"> <!-- Ваш код --> </div> ``` ### Вывод Любой из предложенных способов должен помочь избежать ошибки, возникающей из-за попытки доступа к `undefined`. Выберите тот, который лучше всего соответствует вашим потребностям и стилю кодирования.
Ошибку убрал.
computed: { slicedMembers() { return this.discordData.members ? this.discordData.members.slice(-22) : []; } },
И соответственно:
<div v-for="item in slicedMembers" :key="item.id" class="col align-self-center mb-3">
Ошибка выводится в момент, когдаdiscordData.members
равенundefined
. Но потом данные подгружаются и всё работает ))