Size: a a a

React — русскоговорящее сообщество

2021 February 05

V

Vetro in React — русскоговорящее сообщество
Ебатрон
есть вроде стадии render и commit. А пэинт что такое?
Когда браузер отображает изменения в DOM
источник

ИЗ

Игорь Завирюха... in React — русскоговорящее сообщество
Дмитрий Иванов
Ребят подскажите есть вот такой интерфейс данных которые приходят из api:


interface brandData {
       name_en?: string,
       name_ru?: string,
       logo?: {
           name?: string,
           id?: string,
           extension?: string,
           created_at?: string,
           mimi_type?: string,
           original_name?: string,
           __initializer__ ?: string,
           __cloner__?: string,
           __is_initialized__?: string,
           url?: string,
       },
       disabled?: boolean,
       id?: string,
       created_at?: string,
       updated_at?: string,
       url_slug?: string
}



Я использую useEffect через id по url получаю конктерную марку


  React.useEffect(() => {
   dispatch(
getCurrentBrand(id))
}, [id])



Не кто не сталкивался с проблемом что я не могу сразу обратить к brandData.logo.id потому что он пишет undefined, приходиться писать проверку по типу


if (updateDataSelect.logo !== undefined){
   console.log(updateDataSelect.logo.id)
}



(где updateDataSelect.logo.id это селектор)
ну если у тебя идет получение по апи, то это нормально, что там undefined, ведь данные еще не получены. Можешь просто написать updateDataSelect?.logo?.id || "что-то там", без всяких ифов
источник

Е

Ебатрон in React — русскоговорящее сообщество
Vetro
Когда браузер отображает изменения в DOM
так это ведь и есть стадия commit? Или я путаю? А тогда commit по вашему что такое?
источник

ДИ

Дмитрий Иванов... in React — русскоговорящее сообщество
Игорь Завирюха
ну если у тебя идет получение по апи, то это нормально, что там undefined, ведь данные еще не получены. Можешь просто написать updateDataSelect?.logo?.id || "что-то там", без всяких ифов
Ну то есть данные же должны придти до того как компонент отреедерится
источник

ИЗ

Игорь Завирюха... in React — русскоговорящее сообщество
Дмитрий Иванов
Ну то есть данные же должны придти до того как компонент отреедерится
logo?: {
           name?: string,
           id?: string,

у тебя тут просто необязательные параметры
источник

ИЗ

Игорь Завирюха... in React — русскоговорящее сообщество
т.е даже если данные  есть, это значит, что там может быть undefined
источник

ИЗ

Игорь Завирюха... in React — русскоговорящее сообщество
logo: {} - значит, что там всегда будет значение. logo?: {} значит, что там может быть значение, которое тебе надо или undefined
источник

И

Иванов Максим... in React — русскоговорящее сообщество
Добрый день! Делаю форму заказа. На форме будет много <select>. Если у меня будет таких селектов штук 20, мне необходимо с базы вытягивать для каждого селекта их коллекции значений, а это 20 запросов в базу как я понимаю. Это норм если будет столько запросов?)
источник

ИЗ

Игорь Завирюха... in React — русскоговорящее сообщество
Дмитрий Иванов
Ну то есть данные же должны придти до того как компонент отреедерится
или сделай параметры обязательными (убери знаки вопроса), если это возможно, или проверяй  updateDataSelect?.logo?.id  так
источник

V

Vetro in React — русскоговорящее сообщество
Ебатрон
так это ведь и есть стадия commit? Или я путаю? А тогда commit по вашему что такое?
Commit - применение изменений к DOMу

Как перерисовать изменённый DOM - дело уже браузера и это стадия paint
источник

Е

Ебатрон in React — русскоговорящее сообщество
Vetro
Commit - применение изменений к DOMу

Как перерисовать изменённый DOM - дело уже браузера и это стадия paint
спасибо
источник

ДИ

Дмитрий Иванов... in React — русскоговорящее сообщество
Игорь Завирюха
или сделай параметры обязательными (убери знаки вопроса), если это возможно, или проверяй  updateDataSelect?.logo?.id  так
спасибо щас потестчу
источник

MS

Morning Star in React — русскоговорящее сообщество
Иванов Максим
Добрый день! Делаю форму заказа. На форме будет много <select>. Если у меня будет таких селектов штук 20, мне необходимо с базы вытягивать для каждого селекта их коллекции значений, а это 20 запросов в базу как я понимаю. Это норм если будет столько запросов?)
Какие запросы, это же не пхп, какая база данных?
источник

ДИ

Дмитрий Иванов... in React — русскоговорящее сообщество
в таком ввиде работает console.log(updateDataSelect?.logo?.id) спасибо
источник

ДИ

Дмитрий Иванов... in React — русскоговорящее сообщество
получается что это именно TS ругался интересно конечно
источник

И

Иванов Максим... in React — русскоговорящее сообщество
Morning Star
Какие запросы, это же не пхп, какая база данных?
я ж с фронта на бекенд запросы должен отправлять
источник

EK

Efim Kefir in React — русскоговорящее сообщество
Morning Star
а где можно посмотреть, типа хочу сделать что бы у меня было одно модальное окно, а внутри были разные компоненты
Как вариант можно через композицию (например <Modal>{props.children}</Modal>), либо через HOC
источник

ИЗ

Игорь Завирюха... in React — русскоговорящее сообщество
Дмитрий Иванов
получается что это именно TS ругался интересно конечно
правильно все. TS предупреждает, что там может быть не то, что ты ожидаешь и предотвращает сценарий, когда у тебя придет туда undefined, у тебя не будет проверки на это и аппка упадет
источник

MS

Morning Star in React — русскоговорящее сообщество
Иванов Максим
я ж с фронта на бекенд запросы должен отправлять
Мне казалось ты их должен получать и обрабатывать на стороне клиента а потом отправлять пачкой, разве не так?
источник

MS

Morning Star in React — русскоговорящее сообщество
Efim Kefir
Как вариант можно через композицию (например <Modal>{props.children}</Modal>), либо через HOC
Спасибо
источник