@react_js

Страница 800 из 5115
Vladimir
07.01.2017
22:21:03
бывает хуже

Aleh
07.01.2017
22:39:46
const RoleComponent = roleComponents[userRole] || DefaultPanel;

Vladimir
07.01.2017
22:40:09
а потом там false

лол

Google
Aleh
07.01.2017
22:42:35
вот ща очень сложно(

Yumi
07.01.2017
22:43:58
подскажите, как повесить на весь документ обработку нажатия клавиш? onKeyDown, onKeyPress, onKeyUp - вот это все вешается только на элементы с вводом текста, есть конечно безумная идея спрятать и фокусироваться на таком элементе, но может есть вариант проще?

Yumi
07.01.2017
22:52:56
скорее всего, но сам понять не могу, вот http://pastebin.com/5dJ5PFva

Vladimir
07.01.2017
22:54:45
как ты по нему попадаешь?

он ведь пустой

подожди

что ты несёшь такое

тебе от какого-нибудь document надо слушать

тебе бы в pro.js.noobs

Google
Yumi
07.01.2017
23:12:53
да я так делал и сейчас скопировал этот компонент и у меня он не работает. видимо что-то не так с create-react-app который я создал. попробуй переустановить. спасибо за помощь.

Demid
08.01.2017
04:07:37
не могу найти плагин для Atom для подсказки путей в css, что бы руками ту же картинку не прописывать в бекграунде, ну и прочее.

или может шорткат какой есть?

а я о нем просто не знаю ._.

Дмитрий
08.01.2017
08:24:26
нет конечно, это же идиотизм
Ну писать condition ? <Block> : [] внутри jsx тоже идиотизм, но тем не менее люди так пишут

Явно требуется какое-то упрощение для условий, надеюсь в jsx 2.0 решат что-нибудь

Таймураз
08.01.2017
08:27:06
А можно до return произвести все вычисления и вернуть уже готовые вычисления

Name
08.01.2017
08:28:02
не надо никакого упрощения, если людям не нравится, что надо писать JS в **JS**x (который они всё равно пишут в 100% случаев), то пускай описывают vdom в hyperscript стиле, благо реакт позволяет проблема только в наличии statement в жаваскрипте, поэтому пускай исправляют язык, если надо

Дмитрий
08.01.2017
08:28:18
А можно до return произвести все вычисления и вернуть уже готовые вычисления
Тут в другом подвох)) Что как раз таки показывает, что условия в jsx — это не так просто как все привыкли думать, и это не очень хорошо

Таймураз
08.01.2017
08:29:25
Name
08.01.2017
08:29:39
А можно до return произвести все вычисления и вернуть уже готовые вычисления
я думаю лучше сделать отдельный компонент <Return/> в стиле call/cc, а то у return перегружена семантика тем, что он может прекратить выполнение функции /s

Дмитрий
08.01.2017
08:29:48
Таймураз
08.01.2017
08:30:37
Это ничего не поменяет в моём примере
Мне кажется, загоняться о jsx в js- лишнее

Name
08.01.2017
08:30:42
Тут в другом подвох)) Что как раз таки показывает, что условия в jsx — это не так просто как все привыкли думать, и это не очень хорошо
вывод: это минус jsx и сознательный трейдофф, чтобы люди могли писать псевдохтмл. Можно избежать этого просто не используя jsx

Дмитрий
08.01.2017
08:31:51
Вы напишете condition ? <Block> : [] и сломаете shallow compare в реакте, в результате чего при condition false компонент будет перерендериваться абсолютно каждый раз, потому что [] !== []

И нивелирование таких тонкостей явно ещё предстоит решить, потому что думать о них каждый раз при написании if — это ту мач

Name
08.01.2017
08:32:59
на самом деле здорово, вот если бы в проверке были костыли для таких случаев, то тогда было бы плохо

Дмитрий
08.01.2017
08:33:21
А сейчас — хорошо?

Google
Дмитрий
08.01.2017
08:34:18
Синтаксиса, потому что синтаксисом эту проблему можно решить

Name
08.01.2017
08:34:50
сейчас реакт делает то, что ему описал разработчик, и это хорошо твой пример можно легко изменить для избежания перерендеринга

Таймураз
08.01.2017
08:35:58
Синтаксиса, потому что синтаксисом эту проблему можно решить
Предлагаешь в реакте своеобразный /dev/null ?

Дмитрий
08.01.2017
08:36:03
Я описываю саму проблему, мне не нужно объяснять, что лучше так вот)

Name
08.01.2017
08:37:00
Предлагаешь в реакте своеобразный /dev/null ?
предлагаю написать js VM на JSX

Дмитрий
08.01.2017
08:39:00
Предлагаешь в реакте своеобразный /dev/null ?
Что-то для детектирования условий, банально — "замораживание" условий, разворачивание их в const onFalse = []; () => condition? <Block> : onFalse

Таймураз
08.01.2017
08:40:29
Разве при вызове функции рендера onFalse не новый объявлен будет?

Дмитрий
08.01.2017
08:40:58
Ну за рендер это вынести например

ХЗз

Дмитрий
08.01.2017
08:41:25
Если бы я знал верный варианет, то обсуждал бы его в репе jsx 2.0

Name
08.01.2017
08:41:38
Что-то для детектирования условий, банально — "замораживание" условий, разворачивание их в const onFalse = []; () => condition? <Block> : onFalse
только это не будет работать, потому что JSX это не декларативный DSL, а обычный js в вызове render в итоге, к которому ты такое не прикрутишь

Дмитрий
08.01.2017
08:42:21
начнём с того, что jsx — это не js

Отсюда вытекают все возможные варианты действий

Таймураз
08.01.2017
08:43:15
Immutable тут не поможет?

Дмитрий
08.01.2017
08:43:24
Он транспилируется в js, а как на данный момент это происходит — это другой вопрос

Immutable тут не поможет?
Ну тут много что поможет) Но лучше об этом не думать вообще

Name
08.01.2017
08:43:55
подразумевается, что JSX всё равно будет преобразован в JS без рантайма, так что нужно именно думать в семантике жс

Google
Дмитрий
08.01.2017
08:44:32
А кто сказал про рантайм?

Тупо в корень файла вынести все константы, например)

Name
08.01.2017
08:46:39
у меня условие может вообще выполняться в функции в другом модуле из стороннего пакета, сможет бабель такое трансформировать?

Дмитрий
08.01.2017
08:47:21
Нет, поэтому у тебя всё сломается

¯\_(ツ)_/¯

Name
08.01.2017
08:49:10
больше костылей богу костылей зато можно будет целый день читать стэковерфлоу по особенностям работы с логикой в JSX, как в ангуляре, и думать о том, что изучаешь что-то полезное

Дмитрий
08.01.2017
08:50:38
Ты луддит, а jsx 2.0 всё равно будет, хочешь ты этого или нет)

Admin
ERROR: S client not available

Дмитрий
08.01.2017
08:52:35
Повторюсь, если бы я не видел этих проблем, я бы эту идею в соответствующей репе и обсуждал

Name
08.01.2017
08:53:57
пускай будет, я вообще на реакте не пишу) луддиты уже решили проблему lazy evalutaion для s-выражений в лиспах для if и прочих логических выражений лет 50 назад

Ches
08.01.2017
09:03:57
подскажите нужно ли использовать proptypes с connect redux'a?

Name
08.01.2017
09:07:19
если тебе не нужно, то не нужно

Ches
08.01.2017
09:08:00
мне сказали добавить proptypes в компоненты)

Denis
08.01.2017
09:08:32
ну эээ так добавляй в компоненты, причем тут @connect

class YourClass extends Component { static propTypes = { yourProp: PropTypes.string, etc… } }

Ches
08.01.2017
09:10:38
ну он же тоже пропсы дает

Denis
08.01.2017
09:13:19
я может быть туплю в воскресное утро, но что тогда компоненты?

Ches
08.01.2017
09:19:11
?

Denis
08.01.2017
09:20:01
мне сказали добавить proptypes в компоненты)
в какие компоненты надо что прокинуть? @connect провайдит данные

Ches
08.01.2017
09:21:15
ну стандартный redux, получаем this.props.data с стора через connect и потом компонент этим пользуется

Google
Denis
08.01.2017
09:22:09
ну так надо data: PropTypes.<а тут типизировать то, что пришло сверху>

Ches
08.01.2017
09:22:12
нужно ли для этого писать proptypes?

Denis
08.01.2017
09:22:26
если сказали нужно - пишите

это типизация, это больно только в начале

Ches
08.01.2017
09:23:33
и actions тоже получается добавлять?

Denis
08.01.2017
09:23:42
куда?

в propTypes?

Ches
08.01.2017
09:23:52
да

они же тоже через props. берутся

this.props.sendSmth

Denis
08.01.2017
09:25:22
ну если вы не читали документацию, то я коротко скажу, props вы получаете сверху по иерархии компонентов, в компоненте вы делаете типизацию с помощью propTypes на тот случай, если вы сверху ожидали массив, а пришел хэш, или ожидали функцию, а пришел объект. Компонент вам плюнет эксепшен и скажет, что что-то пошло не так

приучайтесь писать функции как OnSendMessage(), onRequestData

булевые значения можно писать так isDocumentationRead

propTypes отвечают только за проверку данных и за их дефолтное значение, их можно и не писать, но если вы хотите иметь качественный код и хотите расти - пишите

да, поправьте меня если я в воскресение сказал какую-нибудь хуйню

вверху конечно же не CamelCase а camelCase

Andrew
08.01.2017
09:51:21
плюсую

Aleksey
08.01.2017
10:12:44
привет

Maxim robox
08.01.2017
10:21:16
Объясните простыми словами, какую проблему решает redux-form? Не могу понять, нужно ли мне это.

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