
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 - вот это все вешается только на элементы с вводом текста, есть конечно безумная идея спрятать и фокусироваться на таком элементе, но может есть вариант проще?

Vladimir
07.01.2017
22:45:00
в документации нигде не написано, что эти ивенты только на инпутах
https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onkeydown

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, что бы руками ту же картинку не прописывать в бекграунде, ну и прочее.
или может шорткат какой есть?
а я о нем просто не знаю ._.

Name
08.01.2017
08:20:08

Дмитрий
08.01.2017
08:24:26
Явно требуется какое-то упрощение для условий, надеюсь в 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

Таймураз
08.01.2017
08:29:25

Name
08.01.2017
08:29:39

Дмитрий
08.01.2017
08:29:48

Таймураз
08.01.2017
08:30:37

Name
08.01.2017
08:30:42

Дмитрий
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:33:59

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

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

Vladimir
08.01.2017
08:35:36

Таймураз
08.01.2017
08:35:58

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

Name
08.01.2017
08:37:00

Дмитрий
08.01.2017
08:39:00

Таймураз
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

Дмитрий
08.01.2017
08:42:21
начнём с того, что jsx — это не js
Отсюда вытекают все возможные варианты действий

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

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

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

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? Не могу понять, нужно ли мне это.