@react_js

Страница 968 из 5115
Yumi
18.02.2017
16:25:30
есть пример проектов с использованием css-in-js, чтобы потыкать посмотреть?

Dreamerinnoise
18.02.2017
16:27:45
Сделать это в компоненте thisCoolButton
Тогда не вижу другого варианта кроме как передавать className в родительском

Или я не догоняю

Google
Denis
18.02.2017
16:28:57
Наверное всё-таки подход такой неправильный

Dreamerinnoise
18.02.2017
16:29:39
Ну в mui-next везде можно компоненту указать свой класс

Они на jss. Я туда часто подглядываю в плане решений

Denis
18.02.2017
16:30:21
(mui-text == materual-ui, ветка next), если кто не знает

Yumi
18.02.2017
16:32:06
аригато

Denis
18.02.2017
16:32:33
охайо

Roman
18.02.2017
18:08:11
omgf благодарю за такие стикеры!!

в мире react есть альтернатива wtform? желательно с подержкой json-schema

Anton
18.02.2017
18:28:59
что то я не совсем пойму. если я не коннекчу компонент, а он может получить новые пропсы, но мне таки надо делать такое? componentWillReceiveProps(nextProps) { this.setState({ value: nextProps.value}); }

иначе не происходит ре-рендеринга...

Artur
18.02.2017
18:29:46
shouldComponentUpdate есть?

Anton
18.02.2017
18:29:53
нет

Google
Artur
18.02.2017
18:30:09
А в рендере ты используешь this.props или this.state?

Anton
18.02.2017
18:30:38
this.state

Mark
18.02.2017
18:30:46
Может сначала нужно разобраться, зачем тебе state, если ты туда кладёшь значение из props? Может в твоём случае это избыточно

Artur
18.02.2017
18:31:02
this.state
Используй this.props и всё будет

Anton
18.02.2017
18:31:11
это обёртка вокруг <input/>

Artur
18.02.2017
18:31:32
Пытаешься хранить состояние инпута в обёртке?

Anton
18.02.2017
18:31:42
да

Artur
18.02.2017
18:31:55
А как будешь значение снаружи получать?

Anton
18.02.2017
18:32:28
вот от чего то я думал что setState будет

Eugene
18.02.2017
18:32:51
да
Лучше принимай value сверху и функцию onChange

Artur
18.02.2017
18:33:03
Лучше принимай value сверху и функцию onChange
То есть обёртка над input не нужна )

А, нужна для корректного проброса значения, а не события

Короче вот: https://facebook.github.io/react/docs/lifting-state-up.html

Anton
18.02.2017
18:33:39
onChange тоже есть

Artur
18.02.2017
18:33:46
Можно сразу использовать какой-нибудь redux-form или mobx-form

onChange тоже есть
ТОгда нафига хранить состояние инпута в стейте?

export const Input = ({value, onChange}) => <input value={value} onChange={e => onChange(e.target.value)} />

Anton
18.02.2017
18:34:37
ТОгда нафига хранить состояние инпута в стейте?
сорри, предусмотрено только, но нет. есть onSubmit

export const Input = ({value, onChange}) => <input value={value} onChange={e => onChange(e.target.value)} />
не, так просто не выйдет. там 100 строчек компонент

Artur
18.02.2017
18:35:07
сорри, предусмотрено только, но нет. есть onSubmit
Но сабмит должен быть в форме, а не в инпуте

Google
Artur
18.02.2017
18:35:23
не, так просто не выйдет. там 100 строчек компонент
Да я тут общий принцип показал, без стейта

Anton
18.02.2017
18:35:46
без стейта — перекладывать данные в стор или в стейт верхнего компонента

такие примитивные "чистые" компоненты я понимаю

Dreamerinnoise
18.02.2017
18:36:39
Можно сразу использовать какой-нибудь redux-form или mobx-form
https://github.com/formstate/formstate/blob/master/README.md ☝️этот адепт все пилит и пилит новые штуки

Anton
18.02.2017
18:36:44
Artur
18.02.2017
18:36:58
https://github.com/formstate/formstate/blob/master/README.md ☝️этот адепт все пилит и пилит новые штуки
Да, эта штука офигенная, особенно радует поддержка typescript

семантическое название
Ничё не понял. По логике типа onSubmit вызывается тогда, когда в инпуте меняется значение?

Danila
18.02.2017
18:37:32
господа, я помню, уже как-то задавал этот вопрос, но тогда не смог найти норм ответа. не знаете какие-нибудь классные визуальные IDE для реакта? вроде бы кто-то даже пилил свои собственные

Danila
18.02.2017
18:38:45
вебшторм
так есть визуальный редактор react’а? оО

Anton
18.02.2017
18:39:00
так есть визуальный редактор react’а? оО
нет, но есть хорошая интеграция с браузером

Danila
18.02.2017
18:39:31
Dreamerinnoise
18.02.2017
18:39:38
Так может знает кто?

Хотел спросить у реакт экспертов, если я использую портал-технику для модальных окон, я не пожалею об этом потом? Ну то есть, фб не собирается выпиливать unstable_rendersubtreeintocomponent?

Danila
18.02.2017
18:39:54
да
не, увы, это не очень интересно =) такое у меня и в саблайме отлично работает.

Artur
18.02.2017
18:39:58
когда нажимается ентер или он блур
Ну то есть это по сути тот же onChange, только срабатывает по блуру. Тогда да, хранить промежуточное состояние надо в стейте локальном, и ловить componentWillReceiveProps, причём обрабатывать всякие стрёмные штуки типа: componentWillReceiveProps(nextProps) { if (this.props.value !== nextProps.value) this.setState({value: nextProps.value}) // без if введённое значение может неожиданно затереться }

Визуальный редактор это типа мышкой компоненты на странице расставлять?)

Google
Dreamerinnoise
18.02.2017
18:41:07
И про бест практис

Artur
18.02.2017
18:41:48
про if не совсем понял. поясни, плиз. я понимаю, могут прилететь повторно те же пропсы?
Да, по сути если родитель перерендеривается, он перерендеривает своих детей. Без shouldCOmponentUpdate у тебя будет вызван componentWillReceiveProps(), и он затрёт тебе промежуточное значение

Admin
ERROR: S client not available

Алексей
18.02.2017
18:43:39
Ага
про бест практис не скажу, я юзаю, все норм. там че то в react-bootstrap обсуждали это дело)

Artur
18.02.2017
18:44:39
в ифе надо сравнивать тогда не с текущим, а с начальным значением
Ну по сути в this.props.value у тебя и будет начальное значение. Если в компонент придёт новое значение, он должен сбросить промежуточное на него. Иначе то как?

Artur
18.02.2017
18:45:05
Ну или внутри ещё хранить флаг "изменённости", и если он был изменён то игнорить внешщний пропсы до onSubmit

Короче стрёмно это всё )

masked input не сделаешь

или придётся внутрь пробрасывать

Anton
18.02.2017
18:46:12
componentWillReceiveProps(nextProps) { if (this.state.initialValue !== nextProps.value) this.setState({ value: nextProps.value, initialValue: nextProps.value, storedValue: nextProps.value, isActive: false }); }

Artur
18.02.2017
18:46:19
я люблю управлять стейтом снаружи полностью

Dreamerinnoise
18.02.2017
18:46:42
про бест практис не скажу, я юзаю, все норм. там че то в react-bootstrap обсуждали это дело)
Да, я слизал модальный компонент у material-ui. Работает нормально, умеет даже отковаться по отдельному роуту.

Google
Anton
18.02.2017
18:47:32
ну типа да, и не забыть initialValue обновить при наступлении onSubmit
тут пофиг, оно отправится на сервер, а от сервера вернётся по другому каналу и пропишется :)

но щас подумаю, может и правда

Artur
18.02.2017
18:48:14
Вообще то нет, потому что при обновлении от сервера у тебя новое значение придёт в тот же componentWillReceiveProps и сравнится со старым значением

Ну и кстати нафига три стейта: value, initialValue, storedValue?

Anton
18.02.2017
18:48:33
ну работает же

Artur
18.02.2017
18:48:37
Двух вполне достаточно

ну работает же
Значит там какая то ещё магия, например компонент анмаунтится и маунтится

Anton
18.02.2017
18:49:08
stored на случай нажатия искейпа

Artur
18.02.2017
18:49:28
А оно не в value останется разве?

Artur
18.02.2017
18:49:54
или по эскейпу предполагается отмена изменений?

Anton
18.02.2017
18:49:56
value меняется при редактировании. затем жмётся esc - откатывается значение

Artur
18.02.2017
18:50:04
Если отмена то у тебя initialValue для этого есть

Anton
18.02.2017
18:50:20
оно кажись позже появилось... :)

Artur
18.02.2017
18:50:36
Пласты кода )

Короче ладно, разобрались кажется

Anton
18.02.2017
18:50:54
ага... надо вобщем подумать. сенкс

Artur
18.02.2017
18:51:10
велкам

Vladimir
18.02.2017
19:12:46
никто не в курсе, да?(
Тебя никто не понял

Lupsick
18.02.2017
19:14:12
картбланш

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