
Ilya
07.12.2016
07:44:48
Ну так пропами, пропами сударь.
Погодите.
hoc это новое название hof как у редакса, или именно <High><Low /></High>?

Pavel
07.12.2016
07:46:15
1

Google

Ilya
07.12.2016
07:46:25
Хм..
А не легче ли второй вариант юзать тогда?
<Permissions list={['admin']}>
<MyComponent />
</Permissions>

Pavel
07.12.2016
07:47:12
Получится что будет много обёрток
А так ты нужные тебе люди компоненты расширил и юзаешь как хочешь - с пермишенами или без

Ilya
07.12.2016
07:47:49
Ну если у тебя их много будет, тогда да. А так много оберток будет, но в другом месте.
У тебя все равно целевой компонент остается без пермишенов.

Pavel
07.12.2016
07:49:59
В данном конкретном случае можно и так
Но в случае если придётся регулировать поведение компонента самого то придётся использовать hoc
Ну не то что придётся, но будет явно проще

Ilya
07.12.2016
07:50:40
Но тогда у тебя компонент будет не универсальный.
А если он не нужен универсальный, то зачем вообще hoc тогда?

Google

Ilya
07.12.2016
07:50:57
И обертка в принципе.

Pavel
07.12.2016
07:51:12
Чтобы функционал в одном месте хранить для разных компонентов

Ilya
07.12.2016
07:51:50
Не очень понял, ты же хочешь чтобы поведение самого компонента зависело от доступа, тогда это поведение придется в нем и прописывать.

Pavel
07.12.2016
07:52:48
Смотри, у тебя есть универсальный компонент, который контроллабл и его поведение регулируется извне. Если ты не хочешь париться и контролировать одинаково во всех родмтелях, то этот функционал выносишь в хок и не паришься

Ilya
07.12.2016
07:53:40
Погоди.
Регулируется извне, пропами штоле?

Pavel
07.12.2016
07:53:56
Ну да

Ilya
07.12.2016
07:54:03
Типо disabled на инпуте если прав нет?

Pavel
07.12.2016
07:54:19
Ну например да

Ilya
07.12.2016
07:54:32
А, сложил картину.
Угу, да. Тут подошло бы.

Kreizo
07.12.2016
08:06:22
ребят подскажите так правильно делать ?
componentWillUpdate(prewState, newState) {
const boolean = newState.schedules.length === 0
newState.disabled = boolean
}
проверять массив с сервера и если он пустой вешать класс empty
prev*

Alexey
07.12.2016
08:08:40
Посмотри доку, менять стейт через componentWillUpdate нельзя. А так ты можешь тотже конструктор использовать для этих целей, если знаешь данные
но лучше в стейте считать

Kreizo
07.12.2016
08:17:00

Alexey
07.12.2016
08:17:45
для совместимости с внешними библиотеками, которые не react-based

Kreizo
07.12.2016
08:18:01
мне просто нужно менять класс в компоненте в зависимости от стейта

Google

Alexey
07.12.2016
08:18:03
для взаимодействия с сервером есть другие средства

Andrew
07.12.2016
08:18:17
я пока так далеко не зашел в реакте, но в целом я бы не смешивал компоненты публичные с приватными по части уровней доступа, и логика будет проще, и рисков что-то упустить будет меньше

Alexey
07.12.2016
08:18:24
ну так завяжи класс на стейт в рендере

Andrew
07.12.2016
08:18:30
обычно я вообще наглухо отделяю публичные части от приватных

Kreizo
07.12.2016
08:18:48
этот стейт зависит от другого
если пустой массив
а все понял

Roman
07.12.2016
08:42:53
как можно называть константу/переменную boolean? это же путь канатаходца

Andrew
07.12.2016
08:43:22
is{Variable}

Сергей
07.12.2016
08:43:24

Roman
07.12.2016
08:43:58
в смысле?

Владислав
07.12.2016
08:44:05
А кто как решает проблему супер-длинных экшенов?

Сергей
07.12.2016
08:44:15

Дмитрий
07.12.2016
08:44:18

Сергей
07.12.2016
08:44:27
в смысле?
const isOpened = ...
const hasChilds = ...
const doesReceiveData = ...

Roman
07.12.2016
08:44:46
а, ну это то да

Владислав
07.12.2016
08:44:58
ну, меня смущает ORDER_SHOW_PLACE_CONFIRM и ORDER_HIDE_PLACE_CONFIRM

Roman
07.12.2016
08:45:03
но в примере выше
const boolean = ...

Владислав
07.12.2016
08:45:17
их можно поменять на SET_ORDER_PLACE_CONFIRM_VISIBLE, но тоже хз

Сергей
07.12.2016
08:45:26

Google

Kreizo
07.12.2016
08:45:50
isBoolean плохое название для переменной ?

Дмитрий
07.12.2016
08:46:06

Сергей
07.12.2016
08:46:07

Nikolay
07.12.2016
08:46:22

Владислав
07.12.2016
08:46:26

Дмитрий
07.12.2016
08:46:31
А, понял

Владислав
07.12.2016
08:46:33

Дмитрий
07.12.2016
08:46:33
Да

Kreizo
07.12.2016
08:47:06
const isDisabled = state.schedules.length === 0 ? 'button_out_of_call disabled' : 'button_out_of_call'

Admin
ERROR: S client not available

Kreizo
07.12.2016
08:47:11
а так лучше ?

Сергей
07.12.2016
08:47:33

Дмитрий
07.12.2016
08:47:36
Суть не в redux-act, конечно

Сергей
07.12.2016
08:48:22
а вообще есть npmjs.com/classnames

Дмитрий
07.12.2016
08:48:55
Как без classnames жить вообще)

Сергей
07.12.2016
08:49:25

Дмитрий
07.12.2016
08:49:56
Не, я ж говорю, суть не в redux-act, у меня просто код такой, я же его не выпилю теперь)

Сергей
07.12.2016
08:50:13

Дмитрий
07.12.2016
08:51:12
Суть в том, что к константам я обращаюсь через неймспейсы) Экшн order —>
import { ORDER } from 'action'
ORDER.SHOW_PLACE и погнал

Google

Andrew
07.12.2016
08:51:42

Сергей
07.12.2016
08:51:56
а у нас экшены и редюсер в одном месте
так что константы больше нигде не нужны

Pavel
07.12.2016
08:55:00
Облегчили написание констант, а апи целиком пишете
А вообще redux ducks каеф

Сергей
07.12.2016
08:55:34

Kir
07.12.2016
09:03:08
работал кто нибуть с cloudinary ?

Сергей
07.12.2016
09:06:35
так а зачем ещё редюсер?))

Дмитрий
07.12.2016
09:07:36
Ну в принципе это можно в одну функцию уместить)
Но тогда ide не будет понимать что происходит, это минус

Сергей
07.12.2016
09:08:13

Дмитрий
07.12.2016
09:08:24
ну да

Сергей
07.12.2016
09:08:32
как яндекс мапс

Ilya
07.12.2016
09:08:55
нет, не надо, только не это.

Дмитрий
07.12.2016
09:09:12
Не
redux-act сократит это до объекта с названиями пропертей

Сергей
07.12.2016
09:10:27
зачем this.extend?

S
07.12.2016
09:10:28
редьюсеров тогда писать вообще не надо, но и контроль над экшенами остается

Сергей
07.12.2016
09:11:22
а это что-то странное