Size: a a a

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

2021 March 04

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Иван
Что именно ты не понял?)
Ну ты просто добавил проверку на undefined в вычисляемых сторах? Или там суть не в этом?
источник

И

Иван in React — русскоговорящее сообщество
Тимофей 🛴
Ну ты просто добавил проверку на undefined в вычисляемых сторах? Или там суть не в этом?
Ну да
источник

m

maximold in React — русскоговорящее сообщество
Помогите люди! На локальном сервере все ок, но выложил приложение на heroku, и при обновлении страницы получаю следующее. При этом та же самая страница, при переходе на нее через navlink ссылки - отображается на ура??? Второй день ума дать не могу! Гугл молчит.
https://flow-shop-415.herokuapp.com/
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Иван
Ну да
А разве мы так всегда не делали?
источник

И

Иван in React — русскоговорящее сообщество
Тимофей 🛴
А разве мы так всегда не делали?
Как?
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Иван
Как?
Ну вот так как ты написал, в селекторах например, если это редакс
источник

TM

Talgat Mukanov in React — русскоговорящее сообщество
Vladimir Klimov
Ну так блин, у вас он внизу и выводится)
вон он да в самом низу, хотя у автора курса он тоже его ВНЕ Хедера выводил, но все писалось прямо в видном месте
источник

И

Иван in React — русскоговорящее сообщество
Тимофей 🛴
Ну вот так как ты написал, в селекторах например, если это редакс
ну мы делали так:

const initialState = null
const nextState = { a: 1, b: 2 }
...
const aPlusB = useSelector(state => state ? state.a + state.b : 0)


или так:

const initialState = { a: 0, b: 0 }
const nextState = { a: 1, b: 2 }
...
const aPlusB = useSelector(state => state.a + state.b)


первый вариант заёбывает из-за того, что везде нужны проверки на null. второй не совсем корректный, потому что иногда программа должна уметь отличать непроинициализированное значение от проинициализированного и тут может всплыть багуля (например, initialState будет содержать id: -1, а какой-то кусок программы захочет выполнить запрос с этим id. и не поймёт, что это “пустое” значение)
источник

И

Иван in React — русскоговорящее сообщество
Тимофей 🛴
Ну вот так как ты написал, в селекторах например, если это редакс
а я написал вот так:

const initialState = option.none
const nextState = option.some({ a: 1, b: 2 })
...

const maybeAPlusB = useSelector(option.map(state => state.a + state.b))

const aPlusB = getOrElse(0)(maybeAPlusB)


подстановка дефолтного значения в точке применения, а не в точке инициализации. таким макаром можно в рендере делать

const aPlusB = getOrElse(0)(maybeAPlusB)

а в санке

const aPlusB = getOrElse(null)(maybeAPlusB)
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Иван
ну мы делали так:

const initialState = null
const nextState = { a: 1, b: 2 }
...
const aPlusB = useSelector(state => state ? state.a + state.b : 0)


или так:

const initialState = { a: 0, b: 0 }
const nextState = { a: 1, b: 2 }
...
const aPlusB = useSelector(state => state.a + state.b)


первый вариант заёбывает из-за того, что везде нужны проверки на null. второй не совсем корректный, потому что иногда программа должна уметь отличать непроинициализированное значение от проинициализированного и тут может всплыть багуля (например, initialState будет содержать id: -1, а какой-то кусок программы захочет выполнить запрос с этим id. и не поймёт, что это “пустое” значение)
Ну у тебя же первый вариант на скрине?
источник

И

Иван in React — русскоговорящее сообщество
Тимофей 🛴
Ну у тебя же первый вариант на скрине?
на скрине да. а в демку заходил?
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Иван
на скрине да. а в демку заходил?
Ааа, нет
источник

И

Иван in React — русскоговорящее сообщество
Тимофей 🛴
Ну у тебя же первый вариант на скрине?
на скрине иллюстрация проблемы
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Иван
а я написал вот так:

const initialState = option.none
const nextState = option.some({ a: 1, b: 2 })
...

const maybeAPlusB = useSelector(option.map(state => state.a + state.b))

const aPlusB = getOrElse(0)(maybeAPlusB)


подстановка дефолтного значения в точке применения, а не в точке инициализации. таким макаром можно в рендере делать

const aPlusB = getOrElse(0)(maybeAPlusB)

а в санке

const aPlusB = getOrElse(null)(maybeAPlusB)
Это как с использованием either в обработке ошибок
Классный подход, по-моему
источник

И

Иван in React — русскоговорящее сообщество
Vladimir Klimov
Это как с использованием either в обработке ошибок
Классный подход, по-моему
ну да, для двух ветвей either, для опциональных значений option
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Иван
на скрине иллюстрация проблемы
Option и maybe круто 👍 хочу на rescript все писать
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Но массовым он вряд-ли станет
"Шоооо, тииипы, монады? Та идите вы")
источник

KF

K F in React — русскоговорящее сообщество
Vladimir Klimov
Но массовым он вряд-ли станет
"Шоооо, тииипы, монады? Та идите вы")
Это база фп
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Тимофей 🛴
Option и maybe круто 👍 хочу на rescript все писать
Там же тоже error as value вроде как пропагандируется?
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Иван
на скрине иллюстрация проблемы
бля ты бы хоть сказал что смотрите демку, а то я подумал что ты обкурился
скушай пицку🍕
источник