169 похожих чатов

Привет ребят, вопрос по ts, я из локального сервера вывожу

данные. Т.е принцип действия какой: использую useEffect чтобы применить axios, и с помощью useState перерисовываю. Т.е я в стейт передаю изначально пустой массив, а в функции useEffect вызываю setState, чтобы перерисовалось. Но как мне типизировать то, что мне приходит из локального сервера? Ошибка высвечивается: Аргумент типа "never[]" нельзя назначить параметру типа "cardType | (() => cardType)". Я не пойму как мне типизировать то, что приходит.

// react
import {useState, useEffect} from 'react'
import axios from 'axios'
// components
import Header from "../Components/Header/Header"
import Catalog from "../Components/Catalog/Catalog"
import Footer from "../Components/Footer/Footer"

type cardProps = {
id: number
name:string
price:number
desc:string
img:string
saler:string
}
type cardType = {
card:cardProps
}

const Home:React.FC = () => {
const [card, setCard] = useState<cardType>([])
useEffect(() => {
const fetchData = async () => {
const response = await axios.get('http://localhost:1488/parfums')
setCard(response.data)
}

fetchData()
}, [])

return <div>
<Header />
<Catalog card={card}/>
<Footer />
</div>
}

export default Home



За топорное описание проблемы прошу прощение

50 ответов

63 просмотра

Типизация конечно

ну и вопросы задают нынче

get<{data: Cartatype[]}>

const response: тип или response.data as тип

Достижение “Межгалактическое бинго”. Пристопори коней и займись разбором базы и практик, у тебя явно неостановимый галоп. Основное: 1) useEffect не для запросов, если дошел до запросов, - лучше притормози, а то навернешь за обе щеки 2) Типы пишутся CamelCase 3) export default мусор 4) FC мусор 5) Ставь prettier 6) Ставь eslint (+eslint-kit) 7) Регистр просто вешайся (чек https://t.me/this_is_your_channel/49) 8) const [list, setList] = useState<Kek[]>([]); 9) Типы данных отделяют от UI 10) 1488 даже затирать не стал? Стойкость духа! 11) axios напрямую не дергают, ну хотя бы axios.create

Dmitry Remezov
Достижение “Межгалактическое бинго”. Пристопори ко...

А есть ли смысл ставить prettier если eslint-kit юзаешь?

Dmitry Remezov
Достижение “Межгалактическое бинго”. Пристопори ко...

Если не юзать useEffect для запросов, то где грузить данные? Я в свое время гуглил эту тему, везде разное пишут, но в целом не нашел каких-то аргументов против useEffect

Vyacheslav Ananev
А есть ли смысл ставить prettier если eslint-kit ю...

prettier как общепринятый в JS код стайл, еслінт как статичечкий анализатор

Vyacheslav Ananev
А есть ли смысл ставить prettier если eslint-kit ю...

Там преттир просто сразу ставится и интеграция в 1 строку

Dmitry Remezov
Достижение “Межгалактическое бинго”. Пристопори ко...

1. у тебя csr, маленькая страница, на странице тупо один запрос куда еще воткнуть фетч, если не в useEffect? 2. типы пишутся как договоришься с командой, но тут согласен 3. эм, а страницы в nextjs как правильно экспортировать? 4. почему он не deprecated тогда? 5. + 6. + 7. пусть называет файлы как хочет или как в команде договорятся 8. + 9. опять же, зачем это делать, если у него компонент на ~16 строк? 10. 11. если на сайте 1 страница не нужно допольнительно аксиос конфигурировать, зачем создавать инстанс аксиоса? чтобы был?

Aleksey Undefined
1. у тебя csr, маленькая страница, на странице туп...

страницы в некст с дефолтным экспортом это исключение) он о твоём коде говорит

Nikko
Не говори так

11 аксиос не нужен вообще

Aleksey Undefined
не о моем)

я имею ввиду о коде котором пишет разраб, а не фреймворковые договорённости, которым ты просто должен следовать, раз его используешь

Aleksey Undefined
1. у тебя csr, маленькая страница, на странице туп...

1. В СТМ 2. Зачем писал? 3. Ну да, это исключение, к чему это? 4. Кем? Это валидный тип, но мусор в прикладном коде 7. Какая команда? Чел учится, пусть прививает правильные практики. 9. Аргумент от “ну и пох”. Будет в 25 и можно выносить? 11. А если так а если сяк, отоно как может быть! Подход свой нужен! В целом, ты вообще это к чему? В Индии день оправданий жертв инженерной культуры? “Ситуация может быть разной” - можем просто сесть и замолчать, всё же разное, так какой смысл?

Dmitry Remezov
Достижение “Межгалактическое бинго”. Пристопори ко...

FC уже норм, по идее, потому что оттуда удалили children. Из кейсов, наверное, только под дженерики в пропсах не подходит, а в остальном разницы, кажется, нет Толку не особо много, но прям мусором уже, наверное, можно не называть

Tutenstein1518- Автор вопроса
Aleksey Undefined
1. у тебя csr, маленькая страница, на странице туп...

1.Я кстати тоже про первое хотел узнать, но побоялся вызвать бурю негодования остальных. Я не знаю как еще пользоваться фетчом как ни через Effect. А так я понимаю, что useEffect хук намного большей универсальности. 2.С типами постоянно косячу. 4 дня на тайпскрипте пишу. Принцип понимаю, но очень сложно даётся. Все время есть желание психануть и обратно всё в jsx переписать. ... А где остальные достижения посмотреть ?

Tutenstein1518
1.Я кстати тоже про первое хотел узнать, но побоял...

Эффект - это хук для синхронизации, а не для сайдов

Veli
FC уже норм, по идее, потому что оттуда удалили ch...

Проблема в мышлении и практиках. “Мусор” я не столько в негативе, сколько в свойстве. Убрал, ничего качественно не поменялось, но стало чище

Dmitry Remezov
Проблема в мышлении и практиках. “Мусор” я не стол...

Качественно поменялось только то, что возвращаемый тип перестал быть типизированным В целом стреляет при применении, но для библиотеки может быть критичным Можно и самому написать, конечно, но букв больше

Veli
Качественно поменялось только то, что возвращаемый...

> возвращаемый тип перестал быть типизированным Наоборот, кста, он стал по-настоящему типизированным. Для FC это пофиг, там раз в сто лет что-то шаблонное проскочит и как угодно быстро увидишь, а вот для обычных уже другой разговор.

Dmitry Remezov
> возвращаемый тип перестал быть типизированным На...

Да не, если в рамках одного приложения компонент и объявляется, и применяется, то тут как и с возвращаемым значением функции - можно не писать и ловить ошибки в применениях, а не на стадии объявления Я говорил о кейсе, когда ты описываешь код в либе, который юзает кто-то снаружи. Тут объявляя явный тип ты гарантируешь, что не будет ситуации, когда твой контракт изменился случайно автовыводом и ты этого не заметил. В случае с типом компонента - гарантируешь, что не напишешь кривой возврат из рендера Но в целом кейс не очень удачный все равно, потому что даже если ты либу пишешь, у тебя будут тесты/сторибук/что угодно и упустить такое не получится Так что я согласен, что можно не описывать возвращаемый тип, а значит использовать FC смысла нет Плюс я бывает использую дженерики в пропсах, так что при использовании FC пришлось бы писать двумя разными синтаксисами одно и то же в разных ситуациях

Dmitry Remezov
Достижение “Межгалактическое бинго”. Пристопори ко...

любят же советы раздавать кто не шарит, а остальные еще и верят)

Alexander
любят же советы раздавать кто не шарит, а остальны...

А можешь кста по подробнее, а то я постоянно его слушаю. Что не так там?

Dmitry Remezov
Достижение “Межгалактическое бинго”. Пристопори ко...

Только в реакт чате за базу можно словить трех клоунов и хейтерское сообщение

Veli
Только в реакт чате за базу можно словить трех кло...

Диор их по приколу ставит везде и всегда))

Тут выходцам Минина неймётся

Alexander
https://react.dev/reference/react/useEffect#fetchi...

Note that if you use a framework, using your framework’s data fetching mechanism will be a lot more efficient than writing Effects manually.

ога, там же говнари в фейсбуке реакт придумали, не то что тут знатоки в чатике

Alexander
https://react.dev/reference/react/useEffect#fetchi...

А ещё я видел в документации, как из компонента напрямую в дб обращаться, ну, что я могу сказать, идите **** с таким кодом

Alexander
ога, там же говнари в фейсбуке реакт придумали, не...

реакт - это библиотека для рендера. И в доке нужно писать то, что касается рендера они просто показали, что чисто теоретически такое делать можно, но никто не заявлял, что это правильное архитектурное решение

эх, вот только странно что "просто библиотека" для рендера патчит глобалы

самое смешное что они даже не аргументировали никак

veal
фетч, консол лог

а как он фетч патчит? есть где почитать?

veal
https://github.com/facebook/react/issues/25573

gaearon since people are doubting this comment, I'll reiterate we will make not do patching by default in React itself (but frameworks would be welcome to make or not make this choice). пока не патчит и, кажется, не собирается, так что, вроде, все ок

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта