Nikita
Привет, посоветуйте пожалуйста какие-нибудь современные архитектуры для react приложух
MⅨ
Мне нужно обработать input перед тем как его отдавать в value в компонент
Nikita
t.me/feature_slices
спасибо
MⅨ
Один раз попробуешь, уже никогда не станешь прежним
S
++)
тут всего 3 сущности вместо 7 как у vue, поэтому то что ты jsом изменяешь и возвращаешь и есть аналог computed
S
тут даже круче
Rustam
clickListener засунь в useEffect
import { useState, useEffect } from "react"; export function useWindowClick() { const [clickCount, setClickCount] = useState(0); useEffect(() => { const clickListener = () => { setClickCount(clickCount + 1); }; window.addEventListener("click", clickListener); return () => { window.removeEventListener("click", clickListener); }; }, []); return { clickCount }; } Неа, так же замыкает 0 и не меняется значение
Rustam
clickListener засунь в useEffect
могу расшарить на codesandbox
Rustam
так у тебя в эффекте clickCount в зависимостях не указан
так я же хочу один раз подписаться и отписаться по unmount
Rustam
я так понимаю, мне просто нужно как-то передавать по ссылке внутрь clickCount, чтобы он был актуальным
Andrey
так я же хочу один раз подписаться и отписаться по unmount
так и будет import { useState, useEffect } from "react"; export function useWindowClick() { const [clickCount, setClickCount] = useState(0); const increment = useCallback(() => setClickCount(clickCount + 1), [clickCount]); useEffect(() => { window.addEventListener("click", increment); return () => { window.removeEventListener("click", increment); }; }, []); return { clickCount }; }
Rustam
просто для наглядности
Rustam
нашел решение const clickListener = () => { setClickCount(clickCount => clickCount + 1); };
Andrey
🧐 странно, вообще
MVD
Подскажите как скопировтаь содержимое файла в этот же файл в командной строке?
Anonymous
Это front не нода
это и не нода)
Vlad
это и не нода)
Чел задал вопрос в чате по ноде и там)
Aza 👁️
Aza 👁️
Прикольно
Anonymous
уважайте ветеранов
Anonymous
@itsjohncena ты ветеран?
MVD
$ echo file >> file
он просто строку file вставляет в файл
Cenator 🐈
он просто строку file вставляет в файл
echo "$(cat testfile)" >> testfile
Zaff
а у меня лычки нет, да?
Zaff
ой, я ж не тут админ хд
Dmitry
http://s.csssr.ru/U5E1S7FNC/20190812144245.jpg
Dmitry
кто-нибудь ловил ошибки такого рода после апдейта реакта до 16.9.0?
Andrey
http://s.csssr.ru/U5E1S7FNC/20190812144245.jpg
реакт-дом тоже обновил?
Dmitry
yep, все latest
Юрій
обїясните пожалуйста, передаю компонент в роуте пропсы так
Cenator 🐈
В описании ссылка
Юрій
и если в компоненте юзаю передаю дальше в дочерний компонет так
Artyom
Юрій
<SideBar data={this.props.data.tree_data}/>
Юрій
то все норм, а если пітаюсь сохранить в стайт компонента проходного и из него достать инфу так мой дочерний не отрисовываеться
Юрій
блин
Юрій
<Route path="/" render={(props) => ( <Catalog {...props} data={extraProps}/> )}/> если в компоненте Catalog я их сохраняю в стейт Catalog и потом их использую в дочерних то дочерние компоненты не оотрисовываются, а если в дочерние компоненты пихаю сразу с пропсов то они отрисовываются не рисуется в Catalog <MaineContent data={this.state.prod_data} filterFlag={this.state.id} /> рисуется <SideBar data={this.props.data.tree_data} } />
Zhanadil
ребята кто может объяснить или кинуть ссылку на объяснение фразы - wrapper hell???
El
Приветствую. Поделитесь, плиз, примером типизации action creator с thunk. Что-то наподобие export const someAction = (a: string) = (dispatch: Dispatch) => {...}.
Zhanadil
Загляни в девтулз реакта
вы про расширение?
Zhanadil
Да
типа ужасная обертка реакта означает? То что блоки всякими другими блоками по несколько раз завернуты и т.д.
Юрій
<Route path="/" render={(props) => ( <Catalog {...props} data={extraProps}/> )}/> если в компоненте Catalog я их сохраняю в стейт Catalog и потом их использую в дочерних то дочерние компоненты не оотрисовываются, а если в дочерние компоненты пихаю сразу с пропсов то они отрисовываются не рисуется в Catalog <MaineContent data={this.state.prod_data} filterFlag={this.state.id} /> рисуется <SideBar data={this.props.data.tree_data} } />
Илья
типа ужасная обертка реакта означает? То что блоки всякими другими блоками по несколько раз завернуты и т.д.
Hoc, рендер пропсы, консьюмеры. Все это генерирует обертки дополнительные.
Илья
и это все враппер хэлл. спасибо!
Да. В том числе поэтому и используют хуки.
N
Всем привет, друзья подскажите что это означает:
N
Пытаюсь подключит material Tabs
Anonymous
переведи 1, 2, 3 пункты и всё поймешь
ipos
чаще всего это возникает когда хук вызываешь не на верхнем уровне компонента, по крайней мере у меня
Ivan
Ребят, всем привет! Есть сторонняя библиотека react-slick в режиме infinite-loop она клонирует всех потомков. Мне нужно узнать, какие элементы не являются клонами: <div className="gallery-wrapper" onClickCapture={this.eventHandler.preventClickWhenSlide}> <Slider {...this.settings} ref={this.$slider}> { React.Children.toArray(elementsData.map((data, index) => ( <GalleryElement ... /> Возможно ли как то без рефов понять, является ли GalleryElement клоном или нет?
ipos
так перенести на верхний уровень компонента
ipos
воооу
N
Делаю так не помогает:
Sergey
Делаю так не помогает:
внутри функции, описывающей компонент
ipos
так он не в компоненте даже
Sergey
более того, компонент классовый
Andrey
там у тебя класс-компонент, так что даже не пытайся вставить в текущий
Sergey
то есть прямой путь в документацию
ipos
кстати с классовым тоже не выйдет, только функциональный
Китикет
Кошмар
N
а что не так с классами то?