Igor
ну да
Igor
тогда ок, но я бы сделал if (cond) { return; } ...
Igor
это так, не к вопросу, а чтобы не делать вложенный код, думаю так много кто делает
artalar
Андрей
Но тогда первый раз лишний сработает?
function onChangeDeps(callback, deps) { const isFirst = React.useRef(true) React.useEffect(() => { if (isFirst.current) { isFirst.current = false return } callback() }, deps) }
artalar
Ой, слушайте, а я же на каждый рендер сторадж читаю
Daniil
Ты шо тролишь?
Dima
и не париться
Daniil
Калбек, но не как второй
Sm•ok
Рофлите? callback, [value]
artalar
В тайпингах вижу, в доке не нашел =/
так, все стоп… Какой второй аргумент, нет там его
Sm•ok
А кек. Я не то глянул. Я посмотрел скрин арталара)
artalar
А почему useRef не принимает колбек для инициализации 😭 тупые хуки ...
Daniil
Рофлите? callback, [value]
https://reactjs.org/docs/hooks-faq.html#how-to-create-expensive-objects-lazily мы же об одном и том же ?
Андрей
пора паблишить пакет))))
Ну, возможно. У меня около 15 хуков общего назначения в проекте.
Daniil
нет
Что нет
artalar
Что нет
Это колбек на инициализацию, а не на реакцию
Igor
нет
https://ru.reactjs.org/docs/hooks-reference.html#lazy-initial-state
artalar
Ты тут про стейт
Нет, я тут про реф
Igor
ну а как тебе надо?) Ты в стейт инициализируешь один раз твои данные из локалсторейджа и при последующих рендерах у тебя не будет заново оттуда читаться
Daniil
🤔
artalar
я к этому
https://t.me/react_js/732275
Dima
похоже всетаки нужен свой хук)
artalar
Igor
у меня еще вопрос, для чего ты используешь useRef? Почему именно рефы? В чем профит?
artalar
return еще…
Igor
useState(() => {})
Dima
чет сложно
artalar
useState(() => {})
Перепишите без рефа function useStateReactive (initializer, reaction) { const isMounted = React.useRef(false) const stateLast = React.useRef() if (!isMounted.current) { isMounted.current = true stateLast.current = typeof initializer === 'function' ? initializer() : initializer } const [state, update] = React.useState(stateLast.current) React.useEffect(() => { if (stateLast.current === state) return reaction(stateLast.current = state) }) return [state, update] }
Igor
я не знаю в чем заключается кейс
artalar
чет сложно
Менеджить любой стейт с хуками это немноженько боль
artalar
я не знаю в чем заключается кейс
После изменения состояния вызвать колбек. Достаточно микроскопическая задача
Dima
После изменения состояния вызвать колбек. Достаточно микроскопическая задача
const useStateWithCallback = (initialState, callback) => { const [state, setState] = useState(initialState); useEffect(() => callback(state), [state, callback]); return [state, setState]; };
Dima
на правах копипасты
Dima
https://github.com/the-road-to-learn-react/use-state-with-callback/blob/master/src/index.js
🎉
Люди, если у меня в json есть массив Events, из-за этого могут быть проблемы при парсинге? Реакт.
🎉
Сяп.
artalar
Хотя вот так покороче
Igor
колбек будет вызван при маунте, обсуждали же уже
нагуглил только с использованием рефов)
Igor
нормас)
Igor
надо бы подобный хук к себе добавить
Oruj
ребят а как я могу поделиться проектов в codesandbox?)
Павел
Сори что дубль, может есть идеи? Парни приветствую, думаю над реализацией фичи шагов в редактируемом компоненте, пока надумал в сторе компонента под ключём даты хранить сторы компонента на каждое изменение, может что то лучше посоветуете?
Павел
Для уникальности, но это не принципиально, так в голову пришло
Павел
И отката и возврата, типа тайм травел
Dima
И отката и возврата, типа тайм травел
Можно реализовать через стек
Evgeniy 🍀
а зачем это прям в сторе хранить? сделай просто массив-хранилище снаружи.
Dima
Складывать изменения в стек и вытаскивать их при откате
Nikolai
А если найду?
Павел
Есть, immutable
Павел
а зачем это прям в сторе хранить? сделай просто массив-хранилище снаружи.
Удобнее, хотя эта часть будет нужна только компоненту, может и правда в мапу
Dima
Какая разница где хранить
Evgeniy 🍀
Удобнее, хотя эта часть будет нужна только компоненту, может и правда в мапу
удобнее-то удобнее, только перфоманс сильно просядет в случае большого размера объектов
Тимофей 🛴
Павел
Redux-undo
Спс посмотрю Не пропустят, не поддерживается, последний релиз 2017
Dima
Спс посмотрю Не пропустят, не поддерживается, последний релиз 2017
Сделай локальный стор и складывай изменения в стек
Dima
А то что нужно шарить между компонентами отдавай в Редакс стор
Nikita
гайз, привет кто работал с react-slick?
Daniil
сразу вопрос задавай
🎉
Люди, а как-то можно избежать этой гадости, когда реакт сам рендерит без спросу? Ну типа появился объект, отрендерили. Нет объекта и ничего делать не надо.