Alexey
Всем привет. Вопрос, как в реатке сделать карточки для социальных сетей ? Пробовал Helmet но он на ходу меняет их, а соцсети изначально сканируют страницу и берут стандартные значения, не ужели только SSR ?
Artem
Привет всем! помогите решить пролему удаляю полностью nod js , устанавливаю новую и проверяю $ npm node -v 6.9.0 показывает старую версию уже и в ручную искал файлы node js все подсасывается старое? Даже окно command что настраивал под себя старое появляется а не новое как по дефолту черное!
Artem
не пойму какие и где файлы в системе остаются что дают все старое, уже перерыл кучу инфы, не нашел ничего путнего
Artem
а npm не удаляется полностью с node?
Yaroslav
Не знаю, но 6,9,0 это последняя версия нпм, так что всё в норме у тебя
Artem
Не знаю, но 6,9,0 это последняя версия нпм, так что всё в норме у тебя
вообще этот весь гемор начался после того как с гита я реакт начал качать
Artem
Artem
люди подсказывали что может npm или node устарели и конфликт версий
Artem
я теперь все обновил и ту же ошибку бьет
Artem
😥
Artem
как победить эту проблему не знаю
Anonymous
Ребят, почему по нажатии done(на него навешан onPressDone) скрываются все компоненты?
Anonymous
Artem
попробуй без npx
npm init react-app my-app ту же ошибку бьет
Cenator 🐈
попробуй без npx
Лучше бы ничего не писал чем так
Anonymous
А e[condition] что отдаёт?
А он должен что-то отдавать?
Cenator 🐈
Тебе пишет что папка уже существует
Vadim
А он должен что-то отдавать?
Ну что такое e[condition]? Это булево значение?
Vadim
А он должен что-то отдавать?
Что там вообще за массив todoData?
Artem
Тебе пишет что папка уже существует
а папка с проектом то пуста
Cenator 🐈
а папка с проектом то пуста
Ее не должно быть вообще
Vadim
строка
Ну так ты делаешь строгое сравнение строки с булевым значением. Что ты ожидаешь?)
Anonymous
Artem
Ее не должно быть вообще
у людей при скачивании норм времени занимает а у меня даже ничего не качало
Cenator 🐈
Artem
нет
Vadim
Действительно.
Разобрался теперя?
Cenator 🐈
пусто
Попробуй на рабочем столе и/или другое имя
Cenator 🐈
Если не поможет то ставь линукс
Eugene
node --v
Artem
имя папки ставил разное
Artem
и my-app и my-react и по разному
Artem
ничего не поменяло
Anonymous
Разобрался теперя?
Почти, почему-то эти функции очищают прежний стейт. Как фиксить?
Anonymous
ща на хероку залью, чтобы понятнее было
Vadim
Почти, почему-то эти функции очищают прежний стейт. Как фиксить?
Ну так ты фильтруешь массив, но в функции в filter у тебя все время получается false. Таким образом ни один элемент массива не попадает в отфильтрованный и в стейт ты ложишь пустой массив. Перепиши проверку так что бы твоё условие правильно работало
Anonymous
Anonymous
в третьей так вообще всегда должно выдавать тру
Vadim
так у меня же три проверки
Внутри .filter(e => e[condition] и так далее
Anonymous
блин трындец
Anonymous
почему в React обновление состояния так убого выглядит?(((
Anonymous
onToggleDone = (id) => { this.detState(({todoData}) => { const idx = todoData.findIndex((el) => el.id === id) const oldItem = todoData[idx] const newItem = { ... oldItem, done: !oldItem.done} const newArray = [ ... todoData.slice(0, idx), newItem, ... todoData.slice(idx+1) ] }) return{ todoData: newArray } }
Eugene
🤔
Anonymous
Причем тут реакт?
ну при том) нет нормального механизма только извращённый каойто по созданию новых массивов из старых с новыми элементами тенц с бубном дурацкий
Eugene
подскажите, как использовать @babel/plugin-proposal-decorators с export в функциональном компоненте
Eugene
в классовых компонентах просто сверху объявляется @connect(mapStateToProps)
ᚲᛁᚱᛁᛚᛚ
useReducer
useRust*
Frontend Priest
useRust*
по делу что-то скажешь или сразу ливнёшь?
Frontend Priest
спасибо
Anonymous
useReducer
ммм, не дошёл видимо до этого еще в курсе... пока вымораживает подход из 70ых...
Frontend Priest
ммм, не дошёл видимо до этого еще в курсе... пока вымораживает подход из 70ых...
> не дошёл до современного подхода > вымораживает старый подход
artalar
ну при том) нет нормального механизма только извращённый каойто по созданию новых массивов из старых с новыми элементами тенц с бубном дурацкий
Или мобыкс. Или immutable.js Или свои линзы напишите для работы с иммутабельностью. То что реакт рассчитан на иммутабельность не означает что это нельзя скрыть за удобной абстракцией. Зато из этого вытекают другие плюшки
Frontend Priest
haha, classic.
ᚲᛁᚱᛁᛚᛚ
по делу что-то скажешь или сразу ливнёшь?
А чего не мапнуть массив? Просто чёт дофига кода
ᚲᛁᚱᛁᛚᛚ
С тернарником, например
Frontend Priest
А чего не мапнуть массив? Просто чёт дофига кода
так-то да, это примерно то, чего он добивается
Dima
onToggleDone = (id) => { this.detState(({todoData}) => { const idx = todoData.findIndex((el) => el.id === id) const oldItem = todoData[idx] const newItem = { ... oldItem, done: !oldItem.done} const newArray = [ ... todoData.slice(0, idx), newItem, ... todoData.slice(idx+1) ] }) return{ todoData: newArray } }
Ты хочешь просто менять проперти елементу в массиве? И подгорает от того что нужно изменить ссылку на масив? Или что происходит?
Anonymous
Ты хочешь просто менять проперти елементу в массиве? И подгорает от того что нужно изменить ссылку на масив? Или что происходит?
ну да, я меняю проперти в одном из элементов массива и прям подтряхнуло что мне нужно создать сначала новый элемент на базе старого, потом этот элемнт упаковать в новый массив на базе старого, а потом вернуть
Anonymous
ну не дичь ли?
Dima
@nililmnt https://immutable-js.github.io/immutable-js/
Vadim
onToggleDone = (id) => { this.detState(({todoData}) => { const idx = todoData.findIndex((el) => el.id === id) const oldItem = todoData[idx] const newItem = { ... oldItem, done: !oldItem.done} const newArray = [ ... todoData.slice(0, idx), newItem, ... todoData.slice(idx+1) ] }) return{ todoData: newArray } }
Вообще ты очень не красиво сам написал, если я правильно понял что ты хотел сделать. И должно у тебя именно с этого подгорать)
Anonymous
там так сделано
Anonymous
вот я и возмутился