Задать вопрос
  • Почему не работает forEach?

    lahma
    @lahma Автор вопроса
    Smirator,

    Какую то ошибку ловит: 6708f948b9f88819070081.png

    Сделал отдельный запрос на этой же странице:
    fetch('https://fakestoreapi.com/users')
                .then(res=>res.json())
                .then(json=>console.log(json))


    Все работает: 6708f97e2fc56806153643.png
    Написано
  • Почему не работает forEach?

    lahma
    @lahma Автор вопроса
    Ошибки 6708f45c986d9952191673.png

    Код

    <script setup>
    import { useOffsetPagination } from '@vueuse/core'
    import { ref, watchEffect } from 'vue'
    import { useFetch } from '@vueuse/core'
    
    const posts = ref([])
    const database = ref([])
    
    watchEffect(async () => {
      const response = await fetch('https://fakestoreapi.com/users')
      posts.value = await response.json()
    
      if (posts.value.length) {
        posts.value.forEach((item) => {
          database.value.push({ id: item.id, name: item.username })
        })
      }
    })
    
    function fetch(page, pageSize) {
      return new Promise((resolve, reject) => {
        const start = (page - 1) * pageSize
        const end = start + pageSize
        setTimeout(() => {
          resolve(database.value.slice(start, end))
        }, 100)
      })
    }
    
    const data = ref([])
    const page = ref(1)
    const pageSize = ref(10)
    
    fetchData({
      currentPage: page.value,
      currentPageSize: pageSize.value,
    })
    
    function fetchData({ currentPage, currentPageSize }) {
      fetch(currentPage, currentPageSize).then((responseData) => {
        data.value = responseData
      })
    }
    
    const {
      currentPage,
      currentPageSize,
      pageCount,
      isFirstPage,
      isLastPage,
      prev,
      next,
    } = useOffsetPagination({
      total: database.value.length,
      page: 1,
      pageSize,
      onPageChange: fetchData,
      onPageSizeChange: fetchData,
    })
    
    </script>
    
    <template>
      <div v-if="loading">
        loading
      </div>
    
      <div>
        posts: {{ posts }}
      </div>
    
      <div>
        database: {{ database }}
      </div>
    
      <div>
        data: {{ data }}
      </div>
    
      <p>Таблица:</p>
      <table>
        <thead>
          <tr>
            <td>id</td>
            <td>name</td>
          </tr>
        </thead>
        <tr v-for="d in data" :key="d.id">
          <td>{{ d.id }}</td>
          <td>{{ d.username }}</td>
        </tr>
      </table>
    
      <div class="my-4">
        <button :disabled="isFirstPage" @click="prev">
          prev
        </button>
        <button
          v-for="item in pageCount"
          :key="item"
          :disabled="currentPage === item"
          @click="currentPage = item"
        >
          {{ item }}
        </button>
        <button :disabled="isLastPage" @click="next">
          next
        </button>
      </div>
    </template>
    Написано
  • Почему не работает forEach?

    lahma
    @lahma Автор вопроса
    не завилось ((
    Написано
  • Почему не работает forEach?

    lahma
    @lahma Автор вопроса
    Aetae, Бро, изначально я использовал import { useFetch } from '@vueuse/core'
    const { data: posts } = useFetch('https://fakestoreapi.com/users').get().json()

    Ничего не работало. Ну я и начал импровизировать )
    Написано
  • Почему не работает forEach?

    lahma
    @lahma Автор вопроса
    Евгений, ссылка на реализацию в vueUse

    Я просто скопировал из документации и вместо статических данные хочу загружать данные
    Написано
  • Почему не работает forEach?

    lahma
    @lahma Автор вопроса
    Aetae, это реализация из документации vueUse вот ссылка
    Написано
  • Почему не работает forEach?

    lahma
    @lahma Автор вопроса
    Антон Антон, на Nuxt3 работает! А vue не хочет почему то
    Написано
  • Почему не работает forEach?

    lahma
    @lahma Автор вопроса
    Антон Антон, это я пробую варианты

    Изначально все вот так:

    <script setup>
    import { useOffsetPagination } from '@vueuse/core'
    import { ref, watchEffect } from 'vue'
    import { useFetch } from '@vueuse/core'
    
    const database = ref([])
    
    const { data: posts } = useFetch('https://fakestoreapi.com/users').get().json()
    
    posts.value.forEach((item) => {
      database.value.push({ id: item.id, name: item.email })
    })
    
    function fetch(page, pageSize) {
      return new Promise((resolve, reject) => {
        const start = (page - 1) * pageSize
        const end = start + pageSize
        setTimeout(() => {
          resolve(database.value.slice(start, end))
        }, 100)
      })
    }
    
    const data = ref([])
    const page = ref(1)
    const pageSize = ref(10)
    
    fetchData({
      currentPage: page.value,
      currentPageSize: pageSize.value,
    })
    
    function fetchData({ currentPage, currentPageSize }) {
      fetch(currentPage, currentPageSize).then((responseData) => {
        data.value = responseData
      })
    }
    
    const {
      currentPage,
      currentPageSize,
      pageCount,
      isFirstPage,
      isLastPage,
      prev,
      next,
    } = useOffsetPagination({
      total: database.value.length,
      page: 1,
      pageSize,
      onPageChange: fetchData,
      onPageSizeChange: fetchData,
    })
    
    </script>
    
    <template>
      <div class="my-4">
        <button :disabled="isFirstPage" @click="prev">
          prev
        </button>
        <button
          v-for="item in pageCount"
          :key="item"
          :disabled="currentPage === item"
          @click="currentPage = item"
        >
          {{ item }}
        </button>
        <button :disabled="isLastPage" @click="next">
          next
        </button>
      </div>
    
      <div v-if="loading">
        loading
      </div>
    
      <div>
        {{ database }}
      </div>
    
      <div>
        {{ data }}
      </div>
    
      <table>
        <thead>
          <tr>
            <td>id</td>
            <td>name</td>
          </tr>
        </thead>
        <tr v-for="d in data" :key="d.id">
          <td>{{ d.id }}</td>
          <td>{{ d.name }}</td>
        </tr>
      </table>
    </template>
    Написано
  • Почему не работает forEach?

    lahma
    @lahma Автор вопроса
    Не работает

    6707bc274cfe2388746732.png

    <script setup>
    import { useOffsetPagination } from '@vueuse/core'
    import { ref, watchEffect } from 'vue'
    
    const posts = ref([])
    const database = ref([])
    const loading = ref(false)
    
    const postForEach = () => {
      posts.value.forEach((item) => {
          database.value.push({ id: item.id, name: item.email })
        })
    }
    
    watchEffect(async () => {
      loading.value = true
      try {
        const response = await fetch('https://fakestoreapi.com/users')
        posts.value = await response.json()
    
        postForEach()
    
        loading.value = false
      } catch (err) {
        console.log(err)
      } finally {
        loading.value = false
      }
    })
    
    function fetch(page, pageSize) {
      return new Promise((resolve, reject) => {
        const start = (page - 1) * pageSize
        const end = start + pageSize
        setTimeout(() => {
          resolve(database.value.slice(start, end))
        }, 100)
      })
    }
    
    const data = ref([])
    const page = ref(1)
    const pageSize = ref(10)
    
    fetchData({
      currentPage: page.value,
      currentPageSize: pageSize.value,
    })
    
    function fetchData({ currentPage, currentPageSize }) {
      fetch(currentPage, currentPageSize).then((responseData) => {
        data.value = responseData
      })
    }
    
    const {
      currentPage,
      currentPageSize,
      pageCount,
      isFirstPage,
      isLastPage,
      prev,
      next,
    } = useOffsetPagination({
      total: database.value.length,
      page: 1,
      pageSize,
      onPageChange: fetchData,
      onPageSizeChange: fetchData,
    })
    
    </script>
    
    <template>
      <div class="my-4">
        <button :disabled="isFirstPage" @click="prev">
          prev
        </button>
        <button
          v-for="item in pageCount"
          :key="item"
          :disabled="currentPage === item"
          @click="currentPage = item"
        >
          {{ item }}
        </button>
        <button :disabled="isLastPage" @click="next">
          next
        </button>
      </div>
    
      <div v-if="loading">
        loading
      </div>
    
      <div>
        {{ database }}
      </div>
    
      <div>
        {{ data }}
      </div>
    
      <table>
        <thead>
          <tr>
            <td>id</td>
            <td>name</td>
          </tr>
        </thead>
        <tr v-for="d in data" :key="d.id">
          <td>{{ d.id }}</td>
          <td>{{ d.name }}</td>
        </tr>
      </table>
    </template>
    Написано
  • Как сделать push своих данный в useOffsetPagination?

    lahma
    @lahma Автор вопроса
    Мысль была с помощью .map или .forEach
    Написано
  • Как сделать push своих данный в useOffsetPagination?

    lahma
    @lahma Автор вопроса
    import { useOffsetPagination } from '@vueuse/core'
    import { useFetch } from '@vueuse/core'
    import { ref, watchEffect } from 'vue'
    
    const database = ref([])
    
    const url = 'https://fakestoreapi.com/products'
    
    const { data: posts } = useFetch(url).get().json()
    
    for (let i = 0; i < 80; i++) {
      database.value.push({ id: i, name: `user${i}`})
    }
    
    function fetch(page, pageSize) {
      return new Promise((resolve, reject) => {
        const start = (page - 1) * pageSize
        const end = start + pageSize
        setTimeout(() => {
          resolve(database.value.slice(start, end))
        }, 100)
      })
    }
    
    const data = ref([])
    
    const page = ref(1)
    const pageSize = ref(10)
    
    fetchData({
      currentPage: page.value,
      currentPageSize: pageSize.value,
    })
    
    function fetchData({ currentPage, currentPageSize }) {
      fetch(currentPage, currentPageSize).then((responseData) => {
        data.value = responseData
      })
    }
    
    const {
      currentPage,
      currentPageSize,
      pageCount,
      isFirstPage,
      isLastPage,
      prev,
      next,
    } = useOffsetPagination({
      total: database.value.length,
      page: 1,
      pageSize,
      onPageChange: fetchData,
      onPageSizeChange: fetchData,
    })
    Написано
  • Поиск useFuse или Fuse.js как с ним работать?

    lahma
    @lahma Автор вопроса
    Спасибо iljaGolubev
    Да все заработало ))) буду внимательнее
    Написано
  • Результаты поиска или как настроить выпадающий список?

    lahma
    @lahma Автор вопроса
    Круто, спасибо! Оч помогли мне
    Написано
  • Поиск на сайте. Как сделать "ничего не найдено"?

    lahma
    @lahma Автор вопроса
    Очень спасибо!

    66c75248ddd4a385994251.png
    Написано
  • Как убрать авто перелистывание слайдера?

    lahma
    @lahma Автор вопроса
    Ого ))) сории

    Александр, вместо "autoplay: !0"
    поставить "autoplay: true" ?
  • Как убрать авто перелистывание слайдера?

    lahma
    @lahma Автор вопроса
    Не нашел такого в коде.
  • Как изменить порядок блоков в админке WP?

    lahma
    @lahma Автор вопроса
    5e903870dc944542533059.png

    Часть перетащил, спасибо. Оказывается просто ручками )

    1. НО, есть встроеные программистом блоки такие как "Количество в упаковке" "Действующие вещество" они не переносятся так как стандартные.

    2. Не удается поменять местами "Краткое описание товара" и "Основное"