Задать вопрос
Ответы пользователя по тегу React
  • Как вставить значение в элемент из другого массива?

    @OLSER333
    Здесь два варианта.
    1. Изначально правильно сформировать данные, а потом отрисовать через map, это дольше, т.к. неск-ко запросов, но проще вывести одним .map().
    2. Отрисовать начальные данные, а description и remainTime отрисуются позже, как придут (чтобы не было ошибки по обращению к null нужно использовать условную отрисовку)

    Второй вариант - сначала получаем одни данные, а потом позже придут другие. Благодаря {description && отрсиуются позже без ошибки. Чтобы отрисовывать из разных данных, использую idx (если данные в обоих массивах идут в одинаковом порядке)
    Пример
    import React, { useState, useEffect } from 'react'
    
    const Deletee = () => {
      const [tasks, setList] = useState()
      const [description, setAnoterData] = useState()
      useEffect(() => {
        async function getData() {
          const res2 = await fetch('https://jsonplaceholder.typicode.com/posts/')
          setList(await res2.json())
          setTimeout(async () => {
            const res1 = await fetch('https://jsonplaceholder.typicode.com/todos')
            setAnoterData(await res1.json())
          }, 1000)
        }
        getData()
      }, [])
      return (
        <>
          <ul>
            {tasks &&
              tasks.map((task, idx) => {
                return (
                  <li key={task.id} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
                    <span>{task.title}</span>
                    {description && <strong>{description[idx].title + '!!!'}</strong>}
                  </li>
                )
              })}
          </ul>
        </>
      )
    }
    
    export default Deletee
    Ответ написан
    1 комментарий