Daniil
зачем он тут
Maksim
именно useReducer там и нужен
Daniil
подробней
Daniil
какие тут вычисления что нужен хук ради такого?
D_d
щас почитаю о нем. раньше с хуками не сталкивался. вот только возвращаюс к реакту после годового растования
Maksim
подробней
удобнее декомпознуть на функции которые будут собирать все это хозяйство каждый раз
D_d
у мен прото функциональный компонент. использую react-material
Daniil
зачем это ему нужно
Eugene
ребята, использовал кто-нибудь такое в webstorm?
System.config({
"paths": {
"~/*": "./src/*"
}
});
Daniil
ему нужно заменить одно значение у одного элемента массива
Daniil
понял - принял
Maksim
Daniil
я говорю, спредом пройтись с созданием новой константы, изменить значение, занести в стейт, это один из самых очевидных вариантов
Daniil
без нагромождения хуков
D_d
в реакте мутировать типа табу да?
Daniil
это не мутация будет
D_d
Maksim
Daniil
"Теперь в шаблоне по клику на элемент YouTube хочу проставлять ему folded = true/fasle"
Daniil
хз
D_d
из шаблоно когда я кликаю я знаю индекс элемента который хочу менять
Maksim
ну если индекс можно не искать
можно это и спредом собрать, выглядеть будет как говно правда
Daniil
возможно с useReducer проще и быстрее будет, надо проверить
Bogdan
D_d
это уже сделано
Maksim
D_d
не понимаю все равно было бы круто если можно было так сделать
useState({...navItems, navItems.socialNav[0].folded: true})
))
D_d
согласен. но в данном случае решил обойтись без id
Maksim
Maksim
Это не один стейт с двумя массивами должен быть, а два стейта и в каждом по одному
D_d
ну по идее это все навигация. поэтому удобно ее хранить в одном объекте
Daniil
ну как видишь - нет
Vyacheslav
Может кто рассказать тайну вокруг дебоунса, испокон веков, дебонсил функции и только функции, собственно в этом есть смысл, но еще пару месяцев назад перешел на модные онли функциональные компоненты и нужен был хук на дебоунс, написать за 3 минуты написал , но решил почекать у кого как это работает, так вот во всех туториалах, статьях и даже пакетах, useDebounce дебонсит значение Карл, не функцию а значение, можете поделится кто знает зачем и почему так делают. Действительно интересно
Andrew
Народ, не пойму как сделать так, что б при перетаскивании ТОЛЬКО ФАЙЛА в область, появлялся такой блок, есть идеи?
GG
GG
Если его почитать, то можно обнаружить там разные интересные события, одно из которых срабатывает в начале перетаскивания. Где можно чекнуть перетаскиваемый объект на тип файла, и с помощью нехитрых манипуляций с жс и ксс показать такую модалку
Andrew
GG
Andrew
Andrew
у меня идёт блок drag and drop, который наложен сверху другого блока, но мне надо его показать только тогда когда в том диапазоне будет файл, вот в чём проблема, не пойму как это сделать
GG
OnDragEnter, OnDragOver
Dzmitry
Anton
Помогите пжлст решить задачку на логику )
Надо отрисовать контент, у которого совпадает айди, при этом, чтобы он не дублировался. То есть если у 2-х элементов в массиве одинаковый айди, надо отрисовать его только 1 раз, а не 2. У меня в итоге сейчас они дублируются. Как сделать так, чтобы не было этого?
questions.map((question, index) => (
<Component
questions={questions.filter(
question => question.id=== questions[index].id )} /> ))
Paul
Может кто рассказать тайну вокруг дебоунса, испокон веков, дебонсил функции и только функции, собственно в этом есть смысл, но еще пару месяцев назад перешел на модные онли функциональные компоненты и нужен был хук на дебоунс, написать за 3 минуты написал , но решил почекать у кого как это работает, так вот во всех туториалах, статьях и даже пакетах, useDebounce дебонсит значение Карл, не функцию а значение, можете поделится кто знает зачем и почему так делают. Действительно интересно
Ну видимо кому-то кажется, что так более декларативно
GG
GG
первая ссылка в гугле. хм
Paul
Может кто рассказать тайну вокруг дебоунса, испокон веков, дебонсил функции и только функции, собственно в этом есть смысл, но еще пару месяцев назад перешел на модные онли функциональные компоненты и нужен был хук на дебоунс, написать за 3 минуты написал , но решил почекать у кого как это работает, так вот во всех туториалах, статьях и даже пакетах, useDebounce дебонсит значение Карл, не функцию а значение, можете поделится кто знает зачем и почему так делают. Действительно интересно
Когда дебансишь функцию, то дебансится лишь та логика, которая заключена внутри функции. Когда дебансишь значение, то в принципе, ты можешь накрутить на это значение еще 100500 манипуляций, и тебе не придется под каждую манипуляцию дебансить функцию. Так что, в этом есть логика. Правда вот смотрю на типичную реализацию useDebounce и это выглядит как дикий оверхед. Думаю, есть смысл дебансить значения только в случае, когда от него реально много всего зависит в компоненте
Anton
GG
спасибо )
мне это решение больше всех понрав
uniq = (arr) => arr.filter((elem, pos, arr) => (
arr.indexOf(elem) == pos
))
GG
GG
с примерами еще
GG
что из статьи не ясно?
Daren
Подскажет кто нибудь, как можно в Ant Design  прокрутить конетную область без вот таких костылей ?
Henry
👐
Henry
Есть ли эффективный способ реагировать на языковые опции?
Henry
для перевода
Pavel
Henry
спасибо тебе
Artem
Помогите разобраться, пожалуйста. Ситуация такая - рендер роута не хочет заново рендерить передаваемый ему компонент. Суть в том, что есть компонент прелоадера, внутри дочерним передан компонент, который должен отрендериться после отработки прелоадера (прелоадер носит чисто косметический характер). Но конструкция свитч-роуты каким-то образом то ли сохраняет стейт прелоадера то ли просто меняет проп у него. Суть в том, что прелоадер отрабатывает только при первой загрузке сайта. Вот код:
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 ... и далее при всех переходах оно просто тру.
Anonymous
Какой ужас
Artem
Андрей Чайковский
Artem
Artem
Artem
Чет(разг.), чем дальше, тем больше складывается впечатление, что в данном чате все сразу родились филологами и сеньор-разрабами. Просишь помощи, получаешь ковш гуано. Я понимаю, что самому в доке надо жить. Но я два дня потратил уже на этот буллшит. И вместо того чтобы направить, давайте побудем токсичными. Здравствуй, 2к19.
Андрей Чайковский
Дмитрий
Artem
Китикет
Помогите разобраться, пожалуйста. Ситуация такая - рендер роута не хочет заново рендерить передаваемый ему компонент. Суть в том, что есть компонент прелоадера, внутри дочерним передан компонент, который должен отрендериться после отработки прелоадера (прелоадер носит чисто косметический характер). Но конструкция свитч-роуты каким-то образом то ли сохраняет стейт прелоадера то ли просто меняет проп у него. Суть в том, что прелоадер отрабатывает только при первой загрузке сайта. Вот код:
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 ... и далее при всех переходах оно просто тру.
Делай консоль лог в useEffect
Китикет
Посмотри что будет при повторном заходе
Eugene
babel-plugin-root-import
скиньте кто-нибудь настройки своего конфига, если кто ставил такую штуку)
Китикет
Если не поможет, в песочницу)