Size: a a a

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

2020 September 29

ei

export default - зло... in React — русскоговорящее сообщество
Alexey Elizarov
А для какой цели тебе этот хук понадобился?
я же говорил, чтобы не писать свою функцию для сравнения пропсов при мемоизации
источник

EM

Evgeniy Mokeev in React — русскоговорящее сообщество
export default - зло is the side effect
Ну вот, как-то так, вроде ничего не забыл

function useActualCallback(fn) {
 const ref = useRef(null)

 ref.current = fn

 const memoizedCallback = useCallback((...args) => {
   ref.current(...args)
 }, [])

 return memoizedCallback
}
Наверное ты хочешь useEventCallback? Там есть проблемы с concurrent mode, надо юзать аккуратно)
https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback
источник

ei

export default - зло... in React — русскоговорящее сообщество
Evgeniy Mokeev
Наверное ты хочешь useEventCallback? Там есть проблемы с concurrent mode, надо юзать аккуратно)
https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback
Был бы еще конкарент мод
источник

EM

Evgeniy Mokeev in React — русскоговорящее сообщество
Ну когда-нибудь может быть
источник

AE

Alexey Elizarov in React — русскоговорящее сообщество
export default - зло is the side effect
Ну вот, как-то так, вроде ничего не забыл

function useActualCallback(fn) {
 const ref = useRef(null)

 ref.current = fn

 const memoizedCallback = useCallback((...args) => {
   ref.current(...args)
 }, [])

 return memoizedCallback
}
https://codesandbox.io/s/react-playground-forked-o87j4?file=/index.js

Смотрим в консоль справа снизу.
Нажимаем Rerender.
Проверяем same или not same
источник

AE

Alexey Elizarov in React — русскоговорящее сообщество
и зовем пояснительную бригаду зачем нужен отдельный хук, вроде написанного выше useActualCallback
источник

m

misusimusasi in React — русскоговорящее сообщество
Alexey Elizarov
и зовем пояснительную бригаду зачем нужен отдельный хук, вроде написанного выше useActualCallback
хуки это как раньше хоки, чем их больше в коде, тем больше член разработчика который его написал
источник

AE

Alexey Elizarov in React — русскоговорящее сообщество
Оффтопа чуть чуть. Есть у кого нибудь идеи сайдпроектов? Можно и в лс
источник

AT

Andrey Tsapko in React — русскоговорящее сообщество
Alexey Elizarov
Оффтопа чуть чуть. Есть у кого нибудь идеи сайдпроектов? Можно и в лс
Генератор идей сайдпроектов
источник

IB

Ivan Bobchenkov in React — русскоговорящее сообщество
Люди, возник вот такой вопрос, как реализовать вот такую штуку:
Когда я начинаю фетчить дату - делать setState что я её фетчу, к примеру isOnLoading = true
Но после этого, мне нужно как я закончу фетчить дату поставить setState isOnLoading=false, и к примеру это все в 1 методе, это реально? Или какие есть решения?
источник

IB

Ivan Bobchenkov in React — русскоговорящее сообщество
Более понятный вопрос, как работает множественное обновление стейта из 1 метода, насколько это плохо, и как правильно избежать, если это плохо
источник

И

Иван in React — русскоговорящее сообщество
Ivan Bobchenkov
Более понятный вопрос, как работает множественное обновление стейта из 1 метода, насколько это плохо, и как правильно избежать, если это плохо
какого метода?
источник

И

Иван in React — русскоговорящее сообщество
Ivan Bobchenkov
Более понятный вопрос, как работает множественное обновление стейта из 1 метода, насколько это плохо, и как правильно избежать, если это плохо
что такое метод?
источник

m

misusimusasi in React — русскоговорящее сообщество
Ivan Bobchenkov
Люди, возник вот такой вопрос, как реализовать вот такую штуку:
Когда я начинаю фетчить дату - делать setState что я её фетчу, к примеру isOnLoading = true
Но после этого, мне нужно как я закончу фетчить дату поставить setState isOnLoading=false, и к примеру это все в 1 методе, это реально? Или какие есть решения?
санки юзай
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Ivan Bobchenkov
Люди, возник вот такой вопрос, как реализовать вот такую штуку:
Когда я начинаю фетчить дату - делать setState что я её фетчу, к примеру isOnLoading = true
Но после этого, мне нужно как я закончу фетчить дату поставить setState isOnLoading=false, и к примеру это все в 1 методе, это реально? Или какие есть решения?
Если у тебя асинхронщина внутри компонента - делай это внутри useEffect
Там можно await-ить промисс и делать чё тебе надо
источник

IB

Ivan Bobchenkov in React — русскоговорящее сообщество
Иван
какого метода?
Функции в прототипе класса - это методы
источник

IB

Ivan Bobchenkov in React — русскоговорящее сообщество
Vladimir Klimov
Если у тебя асинхронщина внутри компонента - делай это внутри useEffect
Там можно await-ить промисс и делать чё тебе надо
Классовые компоненты, тут без хуков мне нужно сделать
источник

IB

Ivan Bobchenkov in React — русскоговорящее сообщество
Vladimir Klimov
Если у тебя асинхронщина внутри компонента - делай это внутри useEffect
Там можно await-ить промисс и делать чё тебе надо
И это отработает? Типо await setState и т.д.?
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Ivan Bobchenkov
И это отработает? Типо await setState и т.д.?
setState промис не возвращает
источник

IB

Ivan Bobchenkov in React — русскоговорящее сообщество
Vladimir Klimov
setState промис не возвращает
Тогда причём тут await?
источник