экшн, сабскрайбер сообщает об операции 2 раза подряд?
Если убрать стрикт мод из индекса, то проблема ещё остаётся?
Пропала проблема, в интернете ни намека на это, спасибо!
Не стоит его убирать)
это не проблема. и в доке реакта про это написано
В общем стрикт мод можно рассматривать как дополнительный линтер. Если он выявляет какие то проблемы, то это очень тонкие архитектурные проблемы. Даже если вы и не столкнетесь больше с данной проблемой при отключенном стрикт мод, вы упускаете уникальный шанс отладить и понять данную проблему, что могло бы привести к более глубокому пониманию отдельных аспектов реакта. В общем есть мнение включить стрикт мод обратно и как бы поковырять проблему, хотя бы ради опыта.
Часов 5 ковыряю, моя проблема в том что я не понимаю парадигмы в реакте, хоть убей. Как я понял функциональные компоненты отрисовываются единожды и они проще, компоненты-классы - ГРОБ ГРОБ КЛАДБИЩЕ... Думал чтобы не было проперти-дриллов поможет редакс, но он никак не влияет на рирендер компонента по изменению стейта. В общем еще раз 10 столько же посижу и может что-то пойму
просто надо знать жс)
Расскажите пожалуйста о чем вы говорите конкретно
реакт просто вызывает нужные функции в нужный момент
Это можно сказать о любом языке, я все еще не понимаю о чем вы
Парадигма очень простая: рисуем DOM в зависимости от стэйта и пропсов. Стэйт или пропсы, поменялись, пересоздали функцию (На ОСНОВЕ ДЕКЛАРАТИВНОГО ОПИСАНИЯ в jsx файле), запустили и посмотрели на то что она хочет отрисовать в DOM. А затем сравнили с тем, что уже отрисовано в DOM и удалили, изменили или добавили недостающие или лишние части в DOM.
Тогда я видимо что то неправильно делаю: functional component { const [This,setThis] = useState({type:1}); ... event(){ setThis({type:2}) } <Child component props={This}/> } Так в чайлде ничего не меняется, даже после отработки функции event, которая по идее должна менять стейт и в чайлде тоже
Вот если так сделаешь <Child component props={{type: 777}}/> 777 отрисуеться в child?
Да, а если мне его по событию нужно поменять?
Это просто проверка того, правильно работает child или нет
во-первых, перестаньте юзать ключевые слова типа this и т.д. в качестве переменных во-вторых, переменные со юзстейта называются с маленькой буквы, соответственно с вашего примера: const [this, setThis] = useState(blablalba)
Это пример всего лишь как бэ
в третьих это никак не решает проблему чувака )
почему? если ты внесёшь эту строчку в код - у тебя он банально не отработает, потому я не понимаю как мым можем отдебажить из потенциально нерабочего "примера" - вот я привёл два места потенциальной проблемы
This у него с большой буквы, поэтому это не this))
вы знаете как useState хук обработчик накидывает на переменную?. Там принципиально название переменной с маленькой буквы и то, что сам обработчик начинается с set[Заглавная буква названия переменной]продолжениеПеременной - потому здесь ни this, ни This - не подойдёт
так или иначе, это какое-то извращенство так называть
А вот это очень интересно, кстати. Не знал о таком нюансе. Ну тогда стоит поробовать переименовать.
странно, почему в доке этого нет
слушай, есть мнение что бы ты заменил бы название на например const [val, setVal] = useState({type:1}); А то тут пишут, что глюки могут быть из-за неверного наименования. Например из-за регистра символов. Чем черт не шутит, может и поможет.
Я написал уже что это был только пример) конечно я так не обзываю сущности
нет в документации = не верю
это по конвенции называют value и setValue, можно назвать хоть hello и world. это же деструктуризация и мы берем с массива нужные нам элементы и записываем в переменные
https://codesandbox.io/s/thirsty-proskuriakova-gl67j?file=/src/App.js
респект, что не поленился
Ну вот, мистика разрушена)
в общем скидывайте реальный пример - найдём решение, т.к. я так ещё много чуши могу налету придумать)) вот к примеру props={This} стоит заменить на This={This} пропсы в вызове компоненты не обзываются как props - опять-таки юзаете ключевое слово)
вы перевернули моё сознание)
https://stackblitz.com/edit/react-ts-xtkyj4?file=index.tsx
Вот друзья, помогите "Даше найти рюкзак"
таки классовые...ахахах
FTFY https://stackblitz.com/edit/react-ts-r2axfv?file=index.tsx рекомендую ознакомиться https://reactjs.org/docs/react-component.html#constructor Там в рамке написано: Avoid copying props into state! -- а это ровно то, что ты делал
вот так надо было передавать пропс <Child result={this.state.result} />
Тут вообще в TS касяк был
в общем ответ есть, почему так, думаю тут подскажут) спокойной ночи)
Обсуждают сегодня