Nikolai
Можно пожалуйста поподробнее🙏🙏🙏
await перед fetch и res.json забыл
Мадияр
Точно
Мадияр
Спасибо👀👀
Мадияр
Исправил все равно вылетает та же ошибка, в 8 строчке
Anonymous
Подскажите, в yup, как сделать валидацию по нескольким свитчам? const validationSchema = Yup.lazy(values => { switch (values.type) { case '1': return Yup.object().shape({ email: Yup.string().required('REQUIRED!!!'), url: Yup.string().required('REQUIRED!!!') }); case '2': return Yup.object().shape({ name: Yup.object().shape({ x: Yup.string().required('REQUIRED!!!') } ), url: Yup.string().required('REQUIRED!!!') }); default: return mixed(); } });
Александр
В чем проблема? Объясните плз
Проблема в том что list в пропс не приходи, очевидно.
Александр
В nextjs не разбираюсь, но подозреваю что он не вызовет getInitialPropa в этом случае, почему просто не присвоить компоненту .getInitialProps = ... , зачем это делать в useEffect, да ещё и без dep list’а
Alexander
Вылетает ошибка: TypeError: Cannot read property 'map' of undefined
get Initial Props должно быть вне компонента. Не в useEffect
Alexander
component.getInitialPrrops = ваша функция на получение данных.
Александр
Я уже молчу что внутри getInitialProps ошибка, но до неё дело не доходит просто, response.json() возвращает промис а не json
Alexander
useEffect не нужен тк getInitialProps итак вызывает в самом начале.
Мадияр
Благодарю за ответы!
Alexander
Вот например Index.getInitialProps = async function() { const res = await fetch('https://api.tvmaze.com/search/shows?q=batman'); const data = await res.json(); console.log(`Show data fetched. Count: ${data.length}`); return { shows: data.map(entry => entry.show) }; };
Мадияр
get Initial Props должно быть вне компонента. Не в useEffect
В документации к хукам useEffect написано что побочные эффекты следует выполнять внутри нее, видимо неправильно интерпретировал написанное
Alexander
Learn - Fetching Data for Pages | Next.js https://nextjs.org/learn/basics/fetching-data-for-pages/fetching-batman-shows
Alexander
Хуки это хуки но в нексте данные все начальные данные получают в getInitialProps
Alexander
Некст вообще немного странный...
Мадияр
Некст вообще немного странный...
Даже с моим опытом заметил это
Alexander
Даже с моим опытом заметил это
Если вы только начали имхо лучше с реакт начать обычного
Мадияр
Спасибо за развернутый и адекватный ответ ✊
Мадияр
Если вы только начали имхо лучше с реакт начать обычного
Пытаюсь параллельно выучить и то и другое тк пообещали взять на работу если сделаю мини проект с ssd
Alexander
Ну тогда только посочуствую)
Мадияр
ssr*
Йеп
Мадияр
Ну тогда только посочуствую)
А вообще есть какая либо замена next js?
Ivan
А вообще есть какая либо замена next js?
Лучше razzle взять, в нем магии меньше.
Мадияр
С nuxt.js у vue такая же ситуация?
Александр
Лучше razzle взять, в нем магии меньше.
А загрузку данных как ему обеспечить на сервере? Свой велосипед писать?
Ivan
А загрузку данных как ему обеспечить на сервере? Свой велосипед писать?
Зайти в репозиторий razzle и увидеть пару десятков примеров на все случаи жизни в директории examples, например.
Александр
Я то просто это все проходил, с кастомныи решением для загрузки данных с поддержкой ssr, это не просто, очень много подводных, я не агитирую за некст, мы сами отказались на начальном этапе от него в пользу своего решения, но для новичка это норм решение будет, иначе он погрязнет в деталях.
Alexander
Вроде некст самый популярный сейчас? А значит много примеров. И коммьюнити у него норм.
Ilya
Всем привет! На всём проекте используется кастомная либа с ui Но решили попробовать написать чат на ant-design и написали для него отдельный компонент и импортирует его css файл import 'antd/dist/antd.css'; Но эти стили распространяются на весь проект, как можно это устранить и чтобы стили применялись в контексте одного компонента ?
Александр
Вроде некст самый популярный сейчас? А значит много примеров. И коммьюнити у него норм.
Ну нам он не подошёл, многие моменты вызывали вопросы в нем
MVD
У веб стандартов есть календарь фронтенд ивентов. А кто нибудь знает, есть ли похожий для бэкенда?
Andrew
Здоров.Подскажите,пожалуйста,кто обновился на реакт 16/8.0+ Как вы обновляете дочернии компоненты которые получают новые пропсы без метода componentWillReceiveProps
Roman
getDerivedStateFromProps?
Andrew
@necto68 можно пример?
Michail
не кто не знает как убрать diff в webstorm osx?
Andrew
@zhukreal я в нем не могу поменять свой внутрений стейт компонента
Andrew
Тоесть если у меня с редьюсера придут новые пропсы,я в этом методе сравню старые и новые пропсы,дальше стейт меняю и у меня компонент должен будет перерендарится?
Andrew
Хм... Спасибо большое,попробую
Александр
Хм... Спасибо большое,попробую
Но главное чтобы setState вызывался не безусловно (иначе будет бесконечный ререндер) а только если предыдущие пропсы не равны следующим
Александр
Только сравнить старые и новые ты не сможешь
Почему? Там же старые пропсы приходят аргументом?
Александр
А новые в this.props уже
Тимофей 🛴
Тимофей 🛴
А новые в this.props уже
А вы уже про cdu говорите, тогда да
Мадияр
В данный момент вообще возможно писать только с помощью хуков, не использую классовые компоненты или всё ещё без классовых компонентов никак?
Andrew
Интеиесно получается.Если я componentDidUpdate сравниваю пропы у меня происходит перерендер компонента,потом когда сетаю стейт для того что бы работать с ним у меня опять перерендер компонента.
Andrew
this.setState({ ...this.state, test: prevProps.test});,
Артем
А нафига делать ...this.state?
Yury
this.setState({ ...this.state, test: prevProps.test});,
1) по возможности лучше отказаться и работать напрямую с пропсом 2) если принципиально такой кейс - сравнивай пропс со стейтом тогда в cDU
Andrew
@zhukreal у меня с редьюсера падают данные в компонент,мне надо их как то обновить,потом что бы пользователь мог эти данные менять.
Andrew
@ZloyPrizrak для того что значение было в стейте всегда актуальное ,а не предыдущее)
Артем
Так смысл этой конструкции?
Mihail
this.state это и есть предыдущее
this.setState((prevState) => { }) вот предыдущее он же асинхронный, насколько я знаю нельзя на this.state полагаться
Alexey
this.setState((prevState) => { }) вот предыдущее он же асинхронный, насколько я знаю нельзя на this.state полагаться
в той конструкции this.state (текущее) после выполнения станет предыдущим, на кой хрен его спредить
Daniil
с хуками проще)
Алексей
В чем плюшка хуков ?
Sergei
В чем плюшка хуков ?
В документации
Китикет
key надо только у внешнего..
Алексей
В документации
Читал, ваще ничего полезного не нашел) правда я на rn кожу
Китикет
В сокращении кода на 50%
Китикет
+ с хуками все по порядочку, в отличие от методов класса, которые в кашу превращаются