Andrey
Помогите разобраться, пожалуйста. Ситуация такая - рендер роута не хочет заново рендерить передаваемый ему компонент. Суть в том, что есть компонент прелоадера, внутри дочерним передан компонент, который должен отрендериться после отработки прелоадера (прелоадер носит чисто косметический характер). Но конструкция свитч-роуты каким-то образом то ли сохраняет стейт прелоадера то ли просто меняет проп у него. Суть в том, что прелоадер отрабатывает только при первой загрузке сайта. Вот код: App: <Switch> <Route exact path="/" render={() => ( <Preloader> <Home /> </Preloader> )} /> <Route path="/about" render={() => ( <Preloader> <About /> </Preloader> )} /> </Switch> Вот прелоадер: function Preloader({children}: any) { const [isLoaded, setLoad] = useState(false); const [fillBar, setFillBar] = useState({ width: '0%' }); useEffect(() => { setTimeout(() => setLoad(true), 1800); setTimeout(() => { setFillBar({ width: '100%' }); }, 400); }, []); if (!isLoaded) { return ( <NuTutKoro4ePreloader/> ); } return children; }; И боль в том, что при переходе между роутами он после первой загрузки просто рендерит дочерний компонент. Ставил консоль лог на isLoaded, ожидаемо false... true ... и далее при всех переходах оно просто тру.
ну видимо реакт видит что дерево не изменилось и не ремаунтит компонент, хз
Eugene
babel-plugin-root-import делаю все по доке, но все равно: Module not found: Can't resolve
Andrey
Помогите разобраться, пожалуйста. Ситуация такая - рендер роута не хочет заново рендерить передаваемый ему компонент. Суть в том, что есть компонент прелоадера, внутри дочерним передан компонент, который должен отрендериться после отработки прелоадера (прелоадер носит чисто косметический характер). Но конструкция свитч-роуты каким-то образом то ли сохраняет стейт прелоадера то ли просто меняет проп у него. Суть в том, что прелоадер отрабатывает только при первой загрузке сайта. Вот код: App: <Switch> <Route exact path="/" render={() => ( <Preloader> <Home /> </Preloader> )} /> <Route path="/about" render={() => ( <Preloader> <About /> </Preloader> )} /> </Switch> Вот прелоадер: function Preloader({children}: any) { const [isLoaded, setLoad] = useState(false); const [fillBar, setFillBar] = useState({ width: '0%' }); useEffect(() => { setTimeout(() => setLoad(true), 1800); setTimeout(() => { setFillBar({ width: '100%' }); }, 400); }, []); if (!isLoaded) { return ( <NuTutKoro4ePreloader/> ); } return children; }; И боль в том, что при переходе между роутами он после первой загрузки просто рендерит дочерний компонент. Ставил консоль лог на isLoaded, ожидаемо false... true ... и далее при всех переходах оно просто тру.
можешь конечно в депс у эффекта бахнуть чилдрен но выглядит все это достаточно костыльно
Andrey
в песочнице за 7 минут сделал, тут же даж запутаться негде sigh
Evgeniy
Всем привет, знает кто нибудь гайд или статейку где с нуля пишут компонент таблицы с сортировкой пагинацией и т.д ?
Artem
Ура, я таки сделал песочницу. Подскажите, пожалуйста, почему прелоадер не появляется при каждом роутинге (только при первом)? https://codepen.io/ArtBad/pen/mNVNmp?editors=0010
Kurzdor
ребята, как можно сделать для кра без эджекта алиасы?
Kurzdor
через jsconfig?
Китикет
через jsconfig?
Там немного ограниченный функционал)
Kurzdor
craco
не варик
Eugene
не варик
почему?)
Китикет
https://www.npmjs.com/package/cra-alias
Эта штука тоже как craco работает
Китикет
Короче по-другому ты не сделаешь
Cenator 🐈
Kurzdor
ну убрать к ебеням кучу ../
Китикет
Через jsconfig можно сделать чтобы папки из src были как алиасы
Kurzdor
import { SubHeading } from '../../../ui/typo'; import { Input } from '../../../ui/input'; import { Button } from '../../../ui/button'; import { Radio } from '../../../ui/radio'; import { Checkbox } from '../../../ui/checkbox';
Cenator 🐈
Ну jsconfig тогда
Китикет
baseUrl поставь src
Kurzdor
ну что это за помойка ебанная
Китикет
Но я такое не люблю, потому что не понятно что это алиас семантически
Китикет
Поэтому только с собачкой в начале принимаю)
Artem
Дай key каждому прелоадеру
огромнейшее спасибо
Китикет
огромнейшее спасибо
Ну лучше придумай получше способ, потому что это костыль)
Китикет
Лучше вообще что-то без таких рендеров в роутах
Artem
Ну лучше придумай получше способ, потому что это костыль)
Всмысле архитектуры приложения в целом? Или с ключем?
Китикет
Ну типа архитектуры, да
Eugene
🤔почему craco то не варик?
Artem
Ну лучше придумай получше способ, потому что это костыль)
дак я делал в каждом компоненте свой стейт, но это дурдом. Надо в каждый компонент прокинуть хук с ожиданием, и сам прелоадер. И в каждом компоненте будет иф елс это ок разве?
Eugene
module.exports = function({ env }) { return { webpack: { alias: { '@src': path.resolve(__dirname, './src'), '@libs': path.resolve(__dirname, './src/libs'), '@features': path.resolve(__dirname, './src/features'), '@ui': path.resolve(__dirname, './src/ui/'), }, }, } } 🤔
Dmitry
Useeffect данные которые не попали в deps копирует?
Dmitriy
через jsconfig?
если третий да, но даже во втором есть костыль с енв переменной
Kurzdor
так а у меня трабла Module not found: Can't resolve ‘foo’ in '/Users/kurzdor/GIT/kek/src/ui/foo’
Kurzdor
import { Title, More, Date } from ‘foo’;
Mihail
./
Kurzdor
{ "compilerOptions": { "baseUrl": "src" } }
Kurzdor
./
Module not found: Can't resolve ‘./foo’ in '/Users/kurzdor/GIT/kek/src/ui/bar’
Kurzdor
./
https://github.com/facebook/create-react-app/issues/5645#issuecomment-493507405
Kurzdor
у меня такое
The end
Подскажите пожалуйста, кто нибудь подключал ssl сертификат на рег ру ?
Kurzdor
Народ, а можете прояснить есть StyledComponent к примеру и можно туда просто так пихать true-шные пропы так StyledComponent foo так почему некоторые названия пропов то работают и реакт не жалуется, то не работают к примеру <SC icon /> реакт наорал про icon=«true» почему так?
Nazar
Пацаны, не подскажите, после обновления анта поломались кнопочки который в actions в Card
Tesseract
Как сделать что бы Cell 2 занимал все свободное место?🤔
Cenator 🐈
flex-grow 1
Tesseract
flex-grow 1
работает. спасибо за подсказку!
Андрей
как решить быстро проблему путей типа ../../../../components/app ? использую cra
Андрей
craco + alias resolver какой-нибудь
нативненько не получится какой-нить конфиг?
Sergey
нативненько не получится какой-нить конфиг?
https://dev.to/oliverandrich/absolute-imports-with-create-react-app-and-vscode-ihn
Anonymous
нативненько не получится какой-нить конфиг?
Экстендит кра без эджекта, я хз что такое нативненько конфиг
Андрей
+
jsconfig пробовал, может не умею еще готовить
Андрей
Sheldhur
redux-saga это такой костыль со времен когда async/await еще не реализовали, но хотелось и поэтому сделали через генераторы? или от него есть какая-то польза? я вот в этом примере не вижу вообще никакой разницы между async/await и yield. Но вижу что его до сих пор пихают в бойлпрайты
Sheldhur
че нормас то
Sheldhur
я спрашиваю в чем профиты
Sheldhur
единственое в чём я увидел плюсы это возможность прервать выполнение отложенной задачи и приостановить\продолжить выполнение какого-то цикла. Но это полезно только если у тебя дохера таких вещей в проекте, если это какая-то рулетка\казино или еще какая-то срань. Но, если такое приходится делать пару раз на весь проект, то я это все и без саг могу сделать.
Sheldhur
а в бойлпрайты зачем тогда пихают?
Kurzdor
Их нет
ты хоть когда то спишь? или у тебя сегодня работа есть и ты так долго сидишь?
Nikolai
я спрашиваю в чем профиты
Легче тестировать Легче управлять на любом этапе асинхронной операции(не только прерывание)
Nikolai
в чем легкость проявляется?
Там вообще много возможностей, в доке куча примеров. И их можно совмещать с другими мидлварями если вам так проще, а сложные кейсы реализовывать через саги например.
artalar
в чем легкость проявляется?
Ну в доке написано... Все функции вызывает не движек через круглые скобки и внутренний колстак, а сама сага (она монада, все такое). Поэтому мы можем внедрять дополнительное поведение, говоря саге делать то или другое в определенных случаях. Посмотрите доку с эффектами