Looch
а что ты ожижаешь ? кэширование самой функции как сущности или результата ее выполнения ?
Sergei
Я ожидаю, что функция отработает один раз, а после того, как компонент заререндерится функция второй раз уже не отработает
Anonymous
кто подскажет, как заюзать renderRoutes с React Lazy
Sergei
тогда тебе нужен https://reactjs.org/docs/hooks-reference.html#usememo
да я пробовал с usememo, то же самое, функция каждый ререндер срабатывала, но я попробовал снова, и теперь вышло..магия твоей помощи)
Looch
магия доки скорее 🙂
Иван
ребят, я так понимаю, что это по не правильная работа со стейтом в редуксе ? case "SET_MAIN_LINK_ACTIVE":{ let new_state = {}; Object.assign(new_state, state); ... return new_state; }
Иван
а почм корявая ?
Vladimir
такие рекомендации были в доке редакса года 2 назад, когда не было object spread
Ivan
а почм корявая ?
Потому что ты создаёшь новый стейт, а потом его мутируешь. Это не очень читаемо и совсем не очевидно.
Roman
Подскажите плиз, как лучше хранить сессию с юзером(его профиль и пермишоны)?
Иван
а внутри одного файла, я могу дать доступ для dispatch() нескольким компонентам ?
Nikolay
Всем привет, кто-нибудь пользуется mobx-state-tree? Как вам по сравнению с Redux?
Иван
а внутри одного файла, я могу дать доступ для dispatch() нескольким компонентам ?
или по концепции правильно для каждого компонента отдельный .js файл делать ... ?
Archer
всем привет, вопрос по redux-form, по какой причине заполненные поля могу очищатся при клике в другую область? а точнее при blur у поля? у меня в наличии select(react-select) у него берутся данные но при клике в свободную область почему то очищается
Artem
В чем может быть проблема, когда через setState я могу добавить новый элемент в объект, но при изменении существующего он вообще никак не изменяется?
Daniil
Пьюр компонент никаких нет?
Artem
Пьюр компонент никаких нет?
Нет, обычный реактовский Component, state, chart.js и пара методов в классе
Artem
Сначала счел это за то, что идет гонка за обновление между чистым setState Один метод и второй метод пытаются обновить один и тот же элемент стейта и выигрывает последний Однако сейчас использую функции в стейте, ибо они по логике должны в очередь идти, но эффекта ноль this.setState((state) => ({ data: { ...state.data, labels, datasets: [{ ...state.data.datasets[0], data: [] }] }, chartOptions: { ...state.chartOptions, scales: { ...state.chartOptions.scales, yAxes: [{ ...state.chartOptions.scales.yAxes[0], ticks: { ...state.chartOptions.scales.yAxes[0].ticks, max: 2 } }] } }, currentStep: 0, }), () => { console.log(this.state); });
Daniil
очевидно, мутируешь, а не заменяешь. подробнее - нужен код.
если ты смутируешь стейт и потом вызовешь setState ему будет все равно в большинстве кейсов
Artem
Даже подобная вещь не работает: this.setState((state) => ({}), () => { console.log(this.state); }); То есть по лоигке стейт должен быть пустой, однако он не изменяется
Oleg
там мерж идет, а не замена
бля, точно... эти классы.
Artem
там мерж идет, а не замена
И так тоже? this.setState({}, () => { console.log(this.state); });
Oleg
И так тоже? this.setState({}, () => { console.log(this.state); });
ну да. ты должен проп какой-то поменять. по сути это this.state((state) => { ...state })
Aleksey
ребят у меня есть Link и мне нужно сделать с них кнопки. чтобы по нажатию на кнопку происходил редирект. как это сделать?
Виктор
И так тоже? this.setState({}, () => { console.log(this.state); });
ага. а изменения состояний лучше в рендерах чекай а не в колбеках, ты тут вроде замыкание создаешь на текущий стейт
Aleksey
button onClick={() => history.push()}
thanks) буду пробовать
Aleksey
button onClick={() => history.push()}
почему то не работает хотя сделал все правильно вроде
Aleksey
Oleg
почему то не работает хотя сделал все правильно вроде
ну если ты всё правильно сделал - баг в реакте. пиши ишью.
Oleg
ну а пушишь как?
Aleksey
на скрине с ошибкой видно
Oleg
чё за точка?
Aleksey
чё за точка?
убрал) без неё тоже не пашет
Viachaslau
export const history
Aleksey
export const history
не помогло)
Viachaslau
а блин, не на то обратил внимание
Viachaslau
покажи как импортируешь
Артём
Добрый день. Какую из этих двух книг можете посоветовать?
Aleksey
покажи как импортируешь
import history from '../App.js';
Aleksey
да вроде vsc не бьет ошибку) значит импортируется норм. или не факт?)
Viachaslau
import { history } from...
Evgen
Добрый день. Какую из этих двух книг можете посоветовать?
Читай обе, а потом все таки оф. документацию
Артём
Читай обе, а потом все таки оф. документацию
Я бы их обе прочитал, если бы было много времени
Aleksey
import { history } from...
спасибо большущее)
Viachaslau
на будущее, обращай внимание на то как импортишь и как экспортишь)
Evgen
Я думаю, что там около страниц на книгу (600 на две книги)
Evgen
Да и читать можно по "диагонали"
Evgen
🤔
Ошибочка вышла )
Jane
Nurdan
покажи как импортируешь
Импортни {withRouter} из react-router-dom , оберни свой компонент в него и получи history из пропсов
Oleg
можно ли писать в useReducer const data = useContext(Context);?
Ilya
можно ли писать в useReducer const data = useContext(Context);?
нет. хуки можно использовать только внутри других хуков. В колбек функциях этого делать нельзя
Ilya
А какой нить useRouter там ещё не завезли?
import { useContext } from 'react'; import { __RouterContex } from 'react-router'; export function useRouter() { const router = useContext(__RouterContext); return router; }
Павел
Народ, Учу редукс изменяя свой старый проект приложения для vkontacte... помогите понять. При создании reducers - импорчу в них defaultState из файла (что бы не повторять в каждом reducer). Store собираю из reducers. Ожидаю, что панель приложения будет рендериться при первом запуске с дефолтного экрана и ID этого экрана я в stor должен собрать по идее из этого импортированного файла. Без redux работает. С ним значение ID активной панели пустое. Ошибок ни браузер ни VSC не дают. В какую сторону копнуть решение?
Oleg
Оно работает. По крайней мере пока.
Oleg
можно код?
Минут через десять. Там если не в редьюсере, то придется в самом компоненте, добавлять в useEffect dep и передавать в сам редьюсер. По этому хотелось сразу в редьюсере.
Volodymyr
Ребята всем привет, подскажите как заставить эту штуку работать правильно, я пока еще хуки до конца нормально не вкурил. useEffect(() => { getPeriods([defaultPeriod, ...JSON.parse(localStorage.getItem("periods") || "[]")]); }, []); если вынести defaultPeriod вне класса, то все нормально работает, если внутри класса, то у меня ругается вот так React Hook useEffect has a missing dependency: 'defaultPeriod'. Either include it or remove the dependency array` заранее большое спасибо Вам за помощь.