@react_js

Страница 3007 из 5115
Konstantin
25.01.2018
12:24:31
подходящий чат

Anton
25.01.2018
12:40:31
Приятного дня. Я столкнулся со странной хренью. У меня в зависимостях есть new relic. при попытке сборки я получаю ERROR in ./node_modules/@newrelic/native-metrics/lib/pre-build.js Module not found: Error: Can't resolve 'aws-sdk' in … Ставить левый пакет как зависимость прямую приложения как то неправильно, хотя и поможет.

andretshurotshka?❄️кде
25.01.2018
12:42:06
aws-sdk у него есть в зависимостях?

Anton
25.01.2018
12:48:38
aws-sdk у него есть в зависимостях?
У ньюрелика — да. У меня нет. Если добавлю — заработает, но это как то неправильно же?

Google
andretshurotshka?❄️кде
25.01.2018
12:48:57
удали package-lock.json

и поставь заново все зависимости, если не сработает хз

Anton
25.01.2018
12:49:35
сейчас попробую

Dima
25.01.2018
12:57:09
Бля, пацаны, я уже всё. Давно я так не горел. Поставлю свечку за любые рабочие идеи. Есть контейнер, в нём 3 формы. Нужно по клику на кнопку в контейнере собрать данные из вложенных форм и отправить их. Проблема в том, что значения полей лежат исключительно во внутреннем стейте формика и внутри каждой формы. Как поднять их наверх идей уже не осталось. Что уже попробовал и не подошло: - пытаться вызвать метод получения данных через ref (не подходит, потому что нету доступа к values) - сохранять значения форм в контейнере (не подходит, потому что формы большие с вложенными объектами и т.д.) - не делить форму на компоненты, а пихать плоско в контейнере (тоже самое, что и предыдущий вариант) Демо в песочнице: https://codesandbox.io/s/72v81o2oj (пример синтетический, но проблема та же)



Andrey
25.01.2018
12:58:22
Формик не выдаёт данные наружу?

Dima
25.01.2018
12:59:14
Формик не выдаёт данные наружу?
Только, если я ослеп или функционал, который это позволяет делать скрыт в пасхалке.

andretshurotshka?❄️кде
25.01.2018
12:59:28
в onSubmit выдает же

а, тут одна кнопка

Dima
25.01.2018
12:59:58
Именно ?

На 3 формы.

Xeniya
25.01.2018
13:00:34
На 3 формы.
а чего б тогда родителя формой не сделать?

Вячеслав
25.01.2018
13:00:41
забирать данные при handleChange?

Google
Вячеслав
25.01.2018
13:00:49
Dima
25.01.2018
13:01:23
а чего б тогда родителя формой не сделать?
Это никак не поможет получить доступ к значениям дочерних форм.

Anton
25.01.2018
13:01:24
Dima а тут нет общих сторов в которых могли бы мапится состояния форм? + а тебе обязательно три элемента формы? может быть обертки формы 1 2 и 3 сделать div, а папу — формой? тогда одна кнопка сабмита даст тебе все данные по соответствующему событию

Вячеслав
25.01.2018
13:01:45
Это же ты сам придумал сделать 3 формы, но чтобы они работали как-будто одна

Anton
25.01.2018
13:03:06
kana
25.01.2018
13:03:07
и его уже выше сказали

сделать родителя - компонентом формика

форма это по сути то, что мы сабмитаем. Тут форма - это все три группы инпутов

Dima
25.01.2018
13:06:18
форма это по сути то, что мы сабмитаем. Тут форма - это все три группы инпутов
Да, но я упомянул, что каждая из 3-х форм – здоровая херовина с кучей вложенных полей. Учитывая, что проблемы вложенности решаются ручным setValues (но там это ещё не критично, т.к. один уровень вложенности), то на уровне контейнера, это уже будет 2 уровня, что выглядит не очень.

kana
25.01.2018
13:08:42
<input name="root.sub.name" /* остальное по дефолту */ /> именно такой подход нам пропогандирует формик, отлично скейлится на любую вложенность, про какой setValues ты говоришь? values подразумевается как плоский объект

kana
25.01.2018
13:11:09
? О таком варианте я не думал. Но, я так понимаю это в любом случае придётся парсить руками потом?
да, но готовых решений для этого много, так делали формы еще наши деды на пхп)

к сожалению, формик не абстрагирует это

Dima
25.01.2018
13:12:17
к сожалению, формик не абстрагирует это
Именно поэтому нашёл способ ручного мержа вложенных полей с помощью setValues. Но этот вариант мне нравится гораздо больше. Спасибо ?

Может заодно подкинете топовую либу для этого, чтобы ручной хелпер не писать?

andretshurotshka?❄️кде
25.01.2018
13:15:03
https://github.com/jaredpalmer/formik/pull/207 а эт что

Dima
25.01.2018
13:16:57
https://github.com/jaredpalmer/formik/pull/207 а эт что
Если это таки уже есть в формике, то я сейчас буду бить себя по лицу и проклинать документацию.

Google
kana
25.01.2018
13:17:11
о, это что-то новое, типа он теперь может сам пути парсить

ну да, merged ;t)

Dima
25.01.2018
13:18:24
Пробежал доку, ни одного упоминания, что так можно, а всё выглядит именно так.

Но тут я вспомнил, что пытался так делать и оно сеттило не обхъектом, а строкой foo.bar.

Anton
25.01.2018
13:25:22
вопрос на засыпку: у меня есть 1. приложение использующее api, которое общается с микросервисами 2. апи, которое общается с микросервисами и наследуется от базового класса, в котором метод который реализует сами запросы 3. базовый класс, который реализует запросы приложение изоморфное в базовом класса (3) я решил добавить кеширование с использованием мемкеша я поставил пакет https://www.npmjs.com/package/memcached при сборке клиентского бандла всё умирает. конкретнее мотивирует ERROR in ./node_modules/memcached/lib/memcached.js Module not found: Error: Can't resolve 'net' ERROR in ./node_modules/memcached/lib/memcached.js Module not found: Error: Can't resolve 'net' Я попробовал использовать условное подключение, но что то ничего не изменилось. Я не туда копаю или накосячил? this.cache = process && process.env && process.env.TM_CACHE_CONFIG && Object.key(process.env.TM_CACHE_CONFIG).length > 0; if (this.cache === true) { const Memcached = require('memcached'); // eslint-disable-line const uri = process.env.TM_CACHE_SERVER || '127.0.0.1:11211'; this.memcached = new Memcached(uri); }

Dima
25.01.2018
13:28:40
Если кому интересно. Сеттеры вложенных объектов доступны только в 0.9.4. Вынесено в отдельный пакет https://www.npmjs.com/package/formik-nested) и похоже больше не обновляется. В основной ветке этого таки нету.

kana
25.01.2018
13:30:23
в любом случае, сделать такое через set лодаша легко



Dima
25.01.2018
13:36:43
Красиво. Спасибо.

kana
25.01.2018
13:39:04
там плохой пример, set же мутабельный нужно или брать set из lodash/fp, если он там есть, или на for-of переписать

Cenator
25.01.2018
13:39:43
а в рамде есть?

kana
25.01.2018
13:40:08
нет, НО: в lodash есть метод toPath, а в рамде есть assocPath, можно комбинировать)

Сергей
25.01.2018
13:40:27
давай без столбиков

Anton
25.01.2018
13:45:37
или сначала копировать объект и потом уже можно мутировать

kana
25.01.2018
13:46:23
Или забить и мутировать))
речь не про то, reduce + мутация не имеет смысла, можно же на for-of переписать

Cenator
25.01.2018
13:46:42
хотя легко можно обойтись без них

Anton
25.01.2018
13:47:04
так одноуровнеый же будет обжект

Google
Admin
ERROR: S client not available

murove1
25.01.2018
13:48:44
Подскажите плиз Через пропсы передаю 2 свойства в другой компонент, другой компонент должен в инпутах показывает свойства з пропса, а если я изменяю интуп то менять стейт. можно сделать так или по другому нужно? this.state = { title: this.props.title, text: this.props.text }; а потом когда в инпуте изменяю тогда вешать на инпут onChange и там setState.

kana
25.01.2018
13:51:44
лучше так не делать, почему бы просто при изменении текста в инпутах не отправлять новый текст наверх, туда откуда text/title в пропсы кладутся а если уж прямо такое очень-очень нужно (был у меня один такой кейс), то я называю пропс defaultText например и он используется для установки стейта в конструкторе, но этого лучше избегать по максимуму

kana
25.01.2018
13:56:06
а почему лучше не делать можеш сказать? мне интересно просто.
- сложно, много бойлерплейтного кода писать, если обновлять, непредсказуемое поведение - добавляет стейт, который тут вообще не нужен, ведь все уже есть в пропсах - дублирование стейта в двух местах (еще и в пропсах, в трех местах) - компоненты должны быть максимально чистыми в том плане, что изменение пропсов не должно игнорироваться, тут же изменение defaultText будет игнорироваться

Dmitry
25.01.2018
13:56:10
на didMount получил пропс, положил в стейт, а дальше на каждый инпут весишь value=this.state.field onChange=this.onChangeHandler, может как-то так
зачем? - такое поведение делает компонент непредсказуемым пример кейса - пользователь вводит логин/пароль - нажимает на кнопку входа, с сервера приходит ошибка, как нам обнулить input password?

дублирование в стейт пропсов которые приходят сверху - антипаттерн в реакте

Timur
25.01.2018
13:57:48
Stepan
25.01.2018
13:59:18
Прямо в доке написано, что так делать лучше не нужно

Dmitry
25.01.2018
13:59:19
Есть таблиц данных, я хочу редактировать одну запись, открывается модалка и мне необходимо там предустановить данные
в идеологии редакс, если не против создаем новый редюсер для модалки - хранит все инпуты нажали на редактирование - вкинули action - который проставил данные для модалки

короче стейт где порожден - там и умирает (не всплывает наверх), он не дублируется etc

Dmitry
25.01.2018
14:00:52
Все данные спокойно сбрасываются на willReceiveProps
больше кода, больше кейсов, сложней покрывать тестами такие компоненты - а плюсы?

Timur
25.01.2018
14:02:00
больше кода, больше кейсов, сложней покрывать тестами такие компоненты - а плюсы?
Я не силен в документации, не могли бы рассказать, чем черевато инициализируемые данные брать из пропса?

Dmitry
25.01.2018
14:02:36
Звучит хорошо, но создавать редьюсер на каждую модалку с формой
ну или будут костыли - на самом деле это не проблема, все такие редюсеры будут под одну гребенку (можно просто один action - “MY_FORM.SET-DATA”), можно написать достаточно простой генератор, если форм действительно много

Я не силен в документации, не могли бы рассказать, чем черевато инициализируемые данные брать из пропса?
“пользователь вводит логин/пароль - нажимает на кнопку входа, с сервера приходит ошибка, как нам обнулить input password?”

Google
Dmitry
25.01.2018
14:04:47
и тут начинается - ну мы просто пробросим handler в action, а там… и код превращается в очередной монолит со смешанными слоями итд компоненты не реиспользуемые, редюсеры тем более

Dmitry
25.01.2018
14:06:24
Не стремлюсь переубедить, хочется писать хорошо, но и понимать это
компонент (в идеале) должен быть простой функцией от пропс (и так можно) - а тут куча состояний, завязка на жизненный цикл компонента и прочее

Timur
25.01.2018
14:06:24
Если, конечно, их не пару штук всего

Страница 3007 из 5115