gigimon
пора домой :)
Anton
Помогите пжлст понять, где ошибка в чекбоксе. При первом клике на чекбокс, он не меняет значение в стейте. Хотя стили меняются и значение в бд тоже меняется, тк функция запроса срабатывает. Со второго клика он начинает менять стейт, но уже идет разночтение с бд. Где может быть ошибка? const Component = ({ settings, toggleSettings }) => { const [formData, setFormData] = useState({ status: settings.active }); useEffect(() => { setFormData({ status: !settings ? false : settings.active }); }, []); const { status } = formData; return ( <div className="checkbox-item active-status"> <input type="checkbox" id="status" name="status" checked={status} value={status} onChange={e => {setFormData({ ...formData, status: !status }); toggleSettings();}} /> <label htmlFor="status"> {settings.active ? 'Active' : 'Disabled'} </label> </div>);
Daniil
зачем ты вообще стейт используешь если у тебя пропсы этим манипулируют и так
Eugene
есть ли какая разница между onDelete={handleDelete(chip)} и onDelete={() => handleDelete(chip)} я сейчас не про handle, а именно запись в пропсе компонента
Eugene
оно ведь и так и так будет перерисовывать потомков
Vadim
в обоих случаях новая функция создается
Eugene
ок, спасибо
Vladimir
а как обойти ?
Daniil
нет разницы
так в первом случае же вызов будет, а во втором ссылка, разве нет разницы?)
Vadim
так в первом случае же вызов будет, а во втором ссылка, разве нет разницы?)
подразумевается, что hadleDelete будет создавать функцию
Deyl
D-cErGSUcAAWI_M.jpg_large
Deyl
Optional chaining stage #3
Donald
внутри cpu-heavy цикла не отрабатывает setState - окно просто висит. Что делать? Запускать в воркере? Есть какая-нибудь обвязка в реакате, а то вся эта пляска с отдельными файлами как-то шибко убого выглядит
artalar
D-cErGSUcAAWI_M.jpg_large
Не надо так писать
artalar
Как и все эти тупняки с приведением типов
Ivan
Ребят подскажите пожалуйста react-router берет данные для своей работы из window.location?
Andrew
Народ всем хай, хелпуйте, мне надо что при & :hover появлялся определенный компонент только для этого класса, на который ховер, как реализовать?
Eugene
кто-нибудь знает в lodash функцию обратную difference?
Китикет
Но я не уверен, есть ли такая
Eugene
Eugene
есть 2 массива и если в двух есть одинаковый элемент, то вернуть true
Китикет
new Set(arr1).size === new Set(arr2).size
Китикет
Ой не
🐏 Alexander
Optional chaining stage #3
помню в пхп был оператор @, ты мог обраться по несуществубющему ключу и ошибки не было, а учитывая как все считают пхпшников говно кодерами, даже для них зашквар использовать @, но видимо в js - это не зашквар 🙂
Китикет
Надо их собрать вместе, и сравнить размер после new Set
Китикет
Либо сделать обьекты (или Map), пройтись по ключам одного и проверить наличие во втором
Китикет
Надо их собрать вместе, и сравнить размер после new Set
Хотя нет, этот вариант не прокатит Если в одном из массивов есть несколько одинаковых элементов, будет неправильно работать)
Ryhor
Какнаписать в реакт, чтобы стиль был border bottom width?
Nikita
есть у кого опыт в создании serverless SSR? Cloudflare workers интересует. С какими сложностями столкнулись?
artalar
Вот накидал варианты)
Попробуй ab = […a,…b] return new Set(ab).size === ab.length
artalar
Я, правда, не знаю что быстрее: два спреда или конкат
Frontend Priest
Вот накидал варианты)
если разброс чисел не сильно огромный и числа всегда интовые, можно за линейку отработать
artalar
Вообще пример на числах так себе, лучше объектики повставлять
Китикет
Попробуй ab = […a,…b] return new Set(ab).size === ab.length
Я так сначала и хотел сделать, но потом понял что если в одном массиве одинаковые элементы, то оно вернет true, даже если во втором массиве их нет
artalar
Китикет
Вообще пример на числах так себе, лучше объектики повставлять
Ну кстати да, надо знать глубокое сравнение или нет
artalar
Ну кстати да, надо знать глубокое сравнение или нет
Могут и просто одинаковые объекты (по ссылке) быть
Anton
зачем ты вообще стейт используешь если у тебя пропсы этим манипулируют и так
А как в этом случае сделать переключение чекбокса без стейта?
artalar
А давай проверим
ГУЛЯТЬ ТАК ГУЛЯТЬ
Китикет
ГУЛЯТЬ ТАК ГУЛЯТЬ
Ну вполне ожидаемо)
🦜
Пацаны, у кого есть небольшие проекты на редаксе? Скиньте мне плиз, я их попробую на эффектор для доки переписать
Китикет
Я тоже задумался о том конкат или спред юзать в том варианте, но выбрал спред потому что семантически выглядит получше)
Alexander
Ну вполне ожидаемо)
Привет. А что ты используешь для проверки?
artalar
Пацаны, у кого есть небольшие проекты на редаксе? Скиньте мне плиз, я их попробую на эффектор для доки переписать
Сейчас главная проблема в том что нет нормальных свежих проектов на редаксе и хуках (я не нашел). А переписывать коннекты - слишком большой диф будет. В общем бери только код с хуками
Alexander
jsbench.me
Спс!
Китикет
Но надо учесть что эта штука у тебя на клиенте это выполняет, с разных браузеров и устройств будут разные результаты
Китикет
Китикет
такого не бачу пока)
Проект с 30+к строк пойдет?
Китикет
Мне полезно будет если перепишешь на эффектор xDDDDDDD
Китикет
))
pr welcome, как грится))))
Китикет
Только он приватный к сожалению)
Китикет
Ну ниче, устроим тебя как-нибудь
🦜
за 300к в наносекунду
🦜
Сейчас бы желательно пример с async экшенами
🦜
на своих примерах я не юзал thunk у меня мидлваря была для этого и флаг, что экшн асинк
Eugene
Вот накидал варианты)
ого, благодарю)
Китикет
ого, благодарю)
Только так и не понятно какого вида у тебя элементы в массивах)
Китикет
И могут ли повторяться внутри одного массива
Eugene
у кого-нибудь есть пример, как снять фокус(выделение) с инпута по нажатию ESC например