@maxemga

Почему не работает функция map?

Пытаюсь из полученных данных отобразить на странице контейнеры, но что-то не работает.
Прикол в том, что данные то приходят в виде массива с элементами, я это проерял через console.log() по нажатию кнопки на странице, но элементы не отображаются
Хук:
import { useCallback, useState } from "react"
import { operators } from "../pages/api/data/operators"

export const useHttp: any = () => {
   
    const request = async(url: string) => {
        const responce = await fetch(`http://localhost:3000${url}`)
        const data = await responce.json()

        if (!data) {
            return{
                notFound: true,
            }
        }

        return data
    }

    

    return { request }
}

Блок где получаю данные и отображаю их:
const OperatorCardsPage: React.FC<IOperators> = () => {
  const [operators, setOperators] = useState<any[]>();
  const [val, setVal] = useState<number>(0);

  const { request } = useHttp()

  const Responce = async () => {
    const data = await request('/api/hello');
    setOperators(data);
  }

  useEffect(() => {
    Responce();
    operators && operators.map((arr) => {
      setVal(val + 1);
    })
    console.log(val)
  }, [])

  return (
    <OperatorsBlock>
      {operators && operators.map(element => {
        <OperatorCard nameImage={element.image} title={element.title}></OperatorCard>
      })}
        {/* <OperatorCard nameImage="beeline.png" title="Билайн"></OperatorCard>
        <OperatorCard nameImage="mts.png" title="МТС"></OperatorCard> 
        <OperatorCard nameImage="megafon.png"title="Мегафон"></OperatorCard>  */}
        
       <button onClick={() => Responce()}>fsaf</button>
    </OperatorsBlock>
    
  );
}

Контейнер:
const OperatorCard: React.FC<OperatorCard> = (props: any) => {

 
  return (

      <Card>
        <Icon src ={`/images/operators/${props.nameImage}`} alt="" />
        <Title>{props.title}</Title>
      </Card>
    
  );
}


62702196d0ff0432777591.png
  • Вопрос задан
  • 200 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
{operators && operators.map(element => (
        <OperatorCard nameImage={element.image} title={element.title}></OperatorCard>
      ))}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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