🅅aleriy
🅅aleriy
зачем оборачивать createPortal чем то еще, если лучше сделать отдельный компонент
🅅aleriy
и не делать каждый раз поиск элемента в DOM
🅅aleriy
getElementById при каждом рендеринге зачем?
🅅aleriy
если элемент динамический, то можно по ref сослаться, если контейнер статичный и прописан в index.html то не нужно его искать каждый раз
Vova
норм, спасибо
Vova
еще что то есть?
Vova
о в нем
🅅aleriy
но это уже от версии роутера используемого зависит
Vova
просто route в index
Vova
лучще в одном файле делать?
Vova
а понял
Vova
@ValeryKobzar а можно использовать и редакс и хуки в одном проекте, или лучше что то одно?
Vova
просто пишу чисто на редаксе все норм, а когда к редаксу хуки - дофига не понятных багов, по ходу из-за не знания хуков
🅅aleriy
Vova
то-есть это абсолютно разные вещи
Vova
редакс стейт менеджер а хуки замена жизненым циклам
🅅aleriy
ну типа того, хуки делают функциоанльные компоненты более умными :)
Vova
ладно, спасибо
🅅aleriy
а так для редакса обещали хуки сделать useRedux в 7+ релизах
🅅aleriy
чтобы перестаить оборачивать компоненты в connect
Dartess
🅅aleriy
🅅aleriy
а точняк
🅅aleriy
7.1.0
🅅aleriy
у меня сайт не обновился просто
🅅aleriy
в новом проекте полностью на effector пересел, так что слегка потерял нить событий :)
🅅aleriy
useStore это они хорошо придумали :))) как в эффекторе прям
Егор
Добрый день
Ребята посоветуйте статьи или теги по шаблонам проектирования на реакте
Nikolai
Александр
Ilia
Александр
Офигенная новость
Александр
Зачем вам это? Чего вы хотите добиться ?
Alexey
setTimeout
Vladislav
жди ответ от api, а потом показывай весь контент целиком, а не кусками
Alexey
дождись ответа тогда, а то все эти секунды - костыли
Ilia
А асинхронно получать данные не красиво?
Vadim
сделай флаг в state. как только всё загрузилось что нужно поменяй его на true. В рендере если флаг false то return null
Vladislav
можно через Promise.all
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
Alexey
fetch(url).then(raw => raw.json()).then(result => this.setState({ ... }));
Vladislav
а если один запрос, то пример выше
Alexey
если используется redux, тогда redux-thunk пусть заполняет стейт
всё остальное сделают внутренности react/redux
Ilia
Redux-thunk ,состояние загрузки отловить и пока загрузка true ,ничего не рендерить ,как только false - рендерить
Vall
всем привет, есть санка, которая логинит юзера, внутри санки есть экшеныКриэйторы startRequest(), если успех то записывает юзера и successRequest(), если ошибка - failRequest, я с этой санки возвращаю axios, где в then возвращаю результат промиса, то есть вот такой код
axios.post('https://',user).then(({token,...data}) => {
dispatch(setUser(data));
return token;
}),
для чего я так делаю - для того что бы и вэб и мобайл мог использовать данный токен, так как у нас на проекте монорепа, потому в компоненте я делаю так:
const submit = async () => {
try {
const token = await loginUser(data);
await AsyncStorage.setItem('token',token);
push('profile');
} catch(e) {
//code
}
}
вопрос в том, что я ошибку с сервера ловлю в санке, но и делаю обертку в методе копонента в виде try catch, может у кого была подобная ситуация, я просто думаю как можно написать еще проще этот код или никак?
потому что получаеться у меня catch пустой внутри ибо у меня сама ошибка которая будет на серваке, сетится в санке, буду благодарен за разные варианты
Alexey
эм
если redux, то там когда в пропсах данные появятся, тогда и нарисуется
Андрей
Есть родитель а в нем детка. Если родитель изменит свой стейт а детка нет, то родитель перерисуется вместе с его деткой даже если в детке будед sCU=фолсь?
Alexey
а данные где-нибудь ещё нужны? если только в одном компоненте, тогда как писали выше
Andrey
реакт без стейт менеджера юзать - вообще плохая затея
(можешь попробовать effector)
Андрей
Alexey
в конструкторе тогда https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all для всех fetch-ей
Alexey
тогда просто fetch (или xhr, или какая-нибудь библиотека-обертка) и запись в state
Alexey
при изменении стейта произойдет ререндер, в render из данных .map() в нужные элементы или как там у тебя, не знаю
Alexey
<Header />
<Router>
<Route ... />
<Route ... />
</Router>
<Footer />
Anonymous
Как быстро развернуть функциональный компонент в вебшторме ?
Vadim
Vadim
Всм зачем тебе его показывать через таймаут? Какие причины? Я думал что у тебя данные ещё не пришли а компонент рендерится без данных, поэтому ты так хочешь закостылить. Ок, это не то. Тогда зачем это тебе7
Anonymous
сниппет написать
rccp классовый по дефолту разворачивает, а на функциональный по дефолту не предусмотрено? ;\
Anonymous
Anonymous
Подскажите, что еще можно заюзать, вместо функции eval(x: string)
мне нужно получить результат из => ' 1 + 1 * 2 '
Alexey
это уже в документации к роутеру почитай :)
скилл чтения доков очень полезен
Anonymous
Ilya
Ilya
Sm•ok
Sm•ok
Евал плох из-за того, что может скрипт запустить вредоносный
Sm•ok
new Function('a', 'b', 'return a + b');
const func = (a,b) => a+b
Sm•ok
Тут что бы ты не передавал, одинаково вроде сработает
Alexey
только в try-catch оберните
Sm•ok
Но конечно 1 формат кажется мне неудобным
Sm•ok
Не использовал ещё на практике
Василий
Sm•ok
Sm•ok
Чем он схож на eval
Василий
и надо парсить строку на числа и выражения - твоя фцнкция задачу не решит
Sm•ok
Ты к чему это ?