Hennadii
Всем доброго вечера, может кто знает, почему при обновлении страници (ctrl + r) компонента исчезает, хотя точно такая же с некоторыми изменениями ведет себя по другому, не исчезает
Dmitry
5 часов пытался прикрутить TimePicker из Material UI к redux-form, но потом нашел на сайте Material UI ссылку на библиотеку redux-form-material-ui, в описании которой говорится, что разработчики библиотеки заколебались делать то, что делал я и выпилили эти компоненты из пакета
Dmitry
Daniil
а чем объясняется сложность?
Dmitry
дело в миграции версии MaterialUI, видимо им лень переписывать
Dmitry
куча народу жалуется https://github.com/mui-org/material-ui/issues/4787
Daniil
печаль
Daniil
и последний ответ совсем как-то жестко
Dmitry
Мы не планируем никаких работ с компонентами DatePicker и TimePicker.
Dmitry
этот?
Dmitry
а кто-нибудь использол что-то кроме redux-form? что-то мне уже не нравится эта библиотека
Daniil
этот?
ага, вот чел сделал может поможет https://codesandbox.io/s/53v8178q4n?from-embed
Dmitry
ага, вот чел сделал может поможет https://codesandbox.io/s/53v8178q4n?from-embed
а я видел это уже, мне главное валидацию прикрутить
Daniil
https://medium.com/@giordano.cardillo/adding-sass-or-less-support-to-create-react-app-38cbe6c370ce
Dmitry
Сам то пикер работает, но вот с редакс форм его подружить не удается
Daniil
интересный у тебя подход)
Daniil
ты видишь ответ а воспользоваться им не можешь) и при этом считаешь говном) ну что ж удачи)
Daniil
читай доки как работать с вебпаком
Dmitry
ты про валидацию?
Ну вот при смене значения времени пикером, редакс форм не видит этих изменений. И я не понимаю откуда редакс форм должен взять value из input
Dmitry
Срабатывает если потом тыкнуть в поле "Продолжительность" и потом тыкнуть не в поле
Dmitry
тогда редакс-форм понимает, что -то в поле поменялось
Albert
привет всем! а не подскажите, откуда берется dispatch?
Dmitry
из connect()
Daniil
тогда редакс-форм понимает, что -то в поле поменялось
скорее всего измнения принимаются при потере фокуса
Daniil
привет всем! а не подскажите, откуда берется dispatch?
из мидлваров, смотря что иметь в виду под словом береться)
Dmitry
при onChange похоже не работает
Daniil
при onChange похоже не работает
для оптимизации сделали
Dmitry
а если курсор убрать то работает
Daniil
я про это и писал выше
Dmitry
С обычными то полями сразу работает
Daniil
теоретически возможно наверно сделать тоже самое при вводе, если скинешь сандбокс гляну
Daniil
они это даже наверно не столько для оптимизации сделали сколько для избежания ошибок при недозаполненной дате
Dmitry
ну это ладно, но когда пикером дата выбирается валидатор должен погаснуть
Dmitry
и кстати форма не отправляется из-за этого)
Dmitry
надо тыкать в поле, чтобы убрался валидатор
Daniil
надо тыкать в поле, чтобы убрался валидатор
а при клике на ок не срабатывает?
Dmitry
если руками вводить то срабатывает, а если пикером выбрать, то нет
Daniil
т.е. пикером выбрал и потом нужно тыкнуть на время еще раз?
Dmitry
да
Daniil
я думаю там есть событие у пикера при скрытии
Dmitry
onChange
Daniil
только оно?
Albert
✌️
а вот еще) Как этот метод понимает, что 1 аргумент - пропсы, а второй - state? componentDidUpdate(prevProps, prevState, snapshot)
Albert
это сам реакт делает, и это скрыто у него под капотом, я правильно понимаю?
Daniil
это нутрянка реакта
Daniil
да по сути представь так есть какой-то класс и ты твой фреймворк и ты говоришь что этот класс должен наследоваться от твоего класса, и реализовывать некоторые его методы, потом ты из просто дергаешь в нужное время
Albert
но кажись я все понял))
Albert
👌🏻
Daniil
✌️
Albert
✌️
а не подскажешь. когда передовать компоненте просто {props}, а когда {...props}
Albert
я понимаю, что это копия, но какеи должны быть критерии для этого?
Daniil
{... props} - это деструктор он разворачивает свойства props в отдельно лежашие {prop1, prop2, prop3} все зависит от цели если ты передаешь {props} это тоже деструктор но работает немного иначе он берет из передаваемого свойства только свойство props, например <Component props={{props:1}} /> так конечно никто не делает но в данном случае будет получен 1 а не {props:1}
Daniil
точно не помню нужно смотреть возможно если будет объект - останется ссылка
Albert
точно не помню нужно смотреть возможно если будет объект - останется ссылка
ты сказал "зависит от цели", а можешь пример привести так и так?
Daniil
в данном случае цель определяется структурой данных например тебе нужно получить весь объект тогда props или только несколько свойств тогда {color, width... e.t.c} деструктор props = {...props} просто передача всех свойств чтобы не писать color ="white" width={100}
Dmitry
а как задать полю в редакс-форм значение програмно?
Dmitry
Field
Albert
то есть, если писать {...props}, то просто все свойства этой компоненты перейдут к передаваемой компоненте, с такими же наименованиями
Albert
верно понял?
Daniil
Field
там есть что-то типа set
Daniil
верно понял?
да но так лучше не делать это не очень хорошая логика
Daniil
ну... что тут скажешь)
Albert
да но так лучше не делать это не очень хорошая логика
а если мы просто напишем {props}, то что будет?
Koks
Есть места где такая логика норм) но обычно не норм
Albert
типо не наглядно?
Koks
Такая логика норм в hocах например
Albert
Такая логика норм в hocах например
можешь объяснить, что за логика?)
Daniil
типо не наглядно?
не наглядно а то что в последствии может привести к путанице в коде
Koks
а если мы просто напишем {props}, то что будет?
Если так напишешь ты передашь сам объект, а не его свойства
Koks
Albert
а как тогда вызвать в другой компоненте свойтво через props? (так мы просто передаем все свойства через ...props, и в другой компоненте получаем их через один всего аргумент, например вот так, props.color, но если передать просто {props}? как будет выглядеть запись в следующей компоненте?
Daniil
можешь объяснить, что за логика?)
имелась в виду не логика как таковая, а логика программиста который так делает)