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