Андрей
Андрей
Если обновляется и левая колонка в которой форма это значит изменения происходят в левой колонке же, и поэтому перерисовывается, или в форме изменения происходят и это приводит к перерисовке и формы и левой колонки?
Андрей
http://skrinshoter.ru/v/030619/5zUBlF6X
Dmitriy
Потому что , Formik keeps track of your form's state. По сабмиту стейт компонента Formik меняется и происходит ререндер чайлдов.
Андрей
Аааа, спасиб!
Sm•ok
Там говорилось тоже про Zombie child
Sm•ok
что это такое ?
Дима
опять редухопроблемы
Sm•ok
опять редухопроблемы
Это проблема редакса или разработчика ?)
Sm•ok
Я так понял, он коннектит его к ребенку
Sm•ok
и к родителю
artalar
опять редухопроблемы
редух вообще непричем, это реакт
Дима
рендеринг в реакт — это побочный эффект и должен выполняться исключительно после всех вычислений
Sm•ok
An action is dispatched that deletes data from the store, such as a todo item
Sm•ok
Не понял этот момент
Василий
привет . мне было бы удобно массив заполнять вот так let tickets = []; tickets.push(...newTicket); только я имею ошибку Invalid attempt to spread non-iterable instance - можно или ее исправить? нужно иметь копию объекта
Александр
Зачем три точки
Александр
У вас же newTicket не массив
Василий
тык. гуглил - immutable для массиов применятеся ? стало быть замудрил
Александр
тык. гуглил - immutable для массиов применятеся ? стало быть замудрил
При чем тут immutability не понятно, тут обычный js
Александр
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array
artalar
Я думаю нужно лучше описать проблему и контекст. Так то [].push(...[]) == [].concat([])
Василий
уточню - есть один объект для размещения в массив. надо его n раз push в массив, но так, чтобы объекты были новыми
Василий
это нужно из-за того, что после push все объекты ссылаются на один
Василий
Тогда надо push({...newTicket})
вот это скорее всего
Александр
Но надо понимать что это shallow copy
artalar
Как задачу понял так и решил 🤷‍♂️
Александр
Сложно и не понятно
Александр
Наверное нужны более глубокие познания в js
Василий
Тогда надо push({...newTicket})
спасибо, то что нужно. откуда ноги выросли у моего вопроса оказывается group-array начинал неправильно срабатывать, когда группировал массив с объектами, которые ссылались на один объект (push одного экземпляра объекта)
Василий
только вот нотация {...newTicket} - ее babel обработает ?
Vadim
Я попробую переформулировать то что вы пишите немного по-другому "есть один объект для размещения в массив" — есть класс "но так, чтобы объекты были новыми" — его инстансами надо заполнить массив
Vadim
newTicket -> new Ticket()
Василий
newTicket -> new Ticket()
этот вариант неудобен - объект по цепочке вызовов callback формируется. лучше заполнять клонами исходного объекта
Vadim
этот вариант неудобен - объект по цепочке вызовов callback формируется. лучше заполнять клонами исходного объекта
объект по цепочке вызовов callback формируется — а можно немного раскрыть эту мысль?
Василий
в текущей реализации вышло, что формируется объект с билетом, он потом начинает использоваться на серверной и клиентской стороне для сохранения в корзину. и есть сценарий когда надо работат с 2 билетам в танцпол, так как они одинаковые
Василий
сам в шоке
Василий
особенно после push({...newTicket})
Vadim
Это конечно тоже не сильно помогло const Ticket = function(templateTicket){ return JSON.parse(JSON.stringify(templateTicket)); }
Vadim
клонирование объекта для бедных
Дмитрий Михалев
Всем доброго времени суток! Сколько необходимо времени чтобы обуздать React для использования front-end ?
Vadim
const clone = (temp) => JSON.parse(JSON.stringify(temp))
мне кажется что поставновка с клонированием запутывает, кажется лучше сделать таки конструктор, а потом поменять его реализацию на что-то более понятное
Дмитрий Михалев
с нуля 3 месяца
С чего начать изучения?
Василий
с webpack
Василий
с js
то есть ой :) если совсем с нуля - то таки да javascript.ru
Oleg
самый важный вопрос евер. как назвать переменную: urlTable, URLTable или UrlTable?
Дмитрий Михалев
При условии умения программировать или с ним?
программировал в C# начал изучать Java (завершил 2 проекта)
Aliaksandr
const clone = (temp) => JSON.parse(JSON.stringify(temp))
1000 извинений, что вмешиваюсь. Но не забывайте о том, что объекты Date таким образом не станут датами (будут строками) после всех преобразований
Василий
мне кажется что поставновка с клонированием запутывает, кажется лучше сделать таки конструктор, а потом поменять его реализацию на что-то более понятное
ну если кратко написать, то функция добавления вышла примерно такая addTicketsToBasket = ( newTicket, newTicketCountInBasket, //число билетов, которое должно быть добавлено ) => { //----------- let tickets = []; for (let i = 0; i < newTicketCountInBasket; i++) { tickets.push({...newTicket}); } //----------- } в чем будет выгода если в push делать вызовь фабрики или какие то аналоги ?
Александр
программировал в C# начал изучать Java (завершил 2 проекта)
Тогда js сначала изучите основы и потом реакт, пары недель хватит
Александр
Тогда js сначала изучите основы и потом реакт, пары недель хватит
Реакт изучать советую с официальной документации, она хорошая
Александр
без навыков js тяжело будет
Ну так за неделю там можно разобраться если умеешь программировать, по своему опыту говорю
Василий
ну как сказать - у меня 2.5 месяца вышло - но тут я считаю время на перевод фрагмента проекта на React, а фрагмент довольно большой
Александр
ну как сказать - у меня 2.5 месяца вышло - но тут я считаю время на перевод фрагмента проекта на React, а фрагмент довольно большой
Ну я имел ввиду основы понять, принципы стоящие за реактом, virtual dom, synthetic events и такое вот. Достаточно чтения доки и недели потыкаться.
El
Вопрос в общих чертах. Есть ReduxForm'a, в ней одно из полей это загрузка картинки, которая идёт на Cloudinary и оттуда возвращается URL картинки. Как сабмитить такую форму? Через Promise.all отправить 2 actions, одно в БД (туда идут прочие текстовые поля) и одно на Cloudinary ? URL картинки нужно тоже сохранить в БД. Cloudinary вернёт URL, его сохранить в БД, когда это action вернёт ответ, тогда Promise.all разрешится.
El
Отдельное поле? В форме есть input type='file' для загрузки картинки, вы об этом?
El
По сабмиту картинки будет происходить action отправки картинки на endpoint API? Как только файл картинки загружен.
Александр
Нет, я так понимаю в основной БД вы храните только url картинки, а сама она лежит на CDN? Так вот я предлагаю сделать поле которое будет возвращать в форму url загруженной картинки, а внутри себя уже иметь логику загрузки не связанную с редукс форм, с его точки зрения это простое текстовое поле
El
Да, в БД файла картинки нет, есть удалённый URL. Как сделать такое поле, которое возвращает URL в форму?
Александр
В чем проблема то
El
Как в value поля формы положить полученный URL.