@react_js

Страница 2748 из 5115
Art
10.12.2017
17:21:18
синтаксический сахар

?

Тимофей
10.12.2017
17:21:24
но если писать как я написал, то экшены и так оборачиваются в диспач

Art
10.12.2017
17:21:29
и все

Google
Rafael
10.12.2017
17:24:27
синтаксический сахар
не совсем // An alternative to bindActionCreators is to pass // just the dispatch function down, but then your child component // needs to import action creators and know about them.

Тимофей
10.12.2017
17:24:38
?
вот здесь вроде норм по-русски написано https://github.com/rajdee/redux-in-russian/blob/master/docs/api/bindActionCreators.md

Rafael
10.12.2017
17:31:32
по большинству тюториалов на которые я натыкался такая схема нормальна: store => значение компоненты, update значения => action => AJAХ => update store, проблема в том что у меня AJAX занимает 200-500ms, как результат юзер кликает на галочку и с лагом в 200-500ms на нее ставится значение, что я делаю не так?

Sergey
10.12.2017
17:36:15
если есть возможность изменить визуальное состояние галочки до ajax-запроса, то в action с, допустим, redux-thunk, можно от такого избавиться, вызывая dispatch нужных экшнов внутри текущего action

угу, я тоже имею в виду их

Rafael
10.12.2017
17:37:49
Спасибо всем

Google
Nikita
10.12.2017
17:41:06
Ребят как связать экшены и редюсеры в редакс-акт, в доке там и стор и экшены и редюсеры в одном файле?

Тимофей
10.12.2017
17:43:21
kana
10.12.2017
17:43:38
тоже вопроса не понял

Nikita
10.12.2017
17:44:05
Не понял вопрос, тебе не нравится что все в 1 файле?
Ну у меня всегда было отдельно, все надо объединить?

Вообще не понимаю, как он работает

Тимофей
10.12.2017
17:44:33
Ну у меня всегда было отдельно, все надо объединить?
Я считаю так удобнее, это вроде ducks называют

Nikita
10.12.2017
17:45:09
kana
10.12.2017
17:45:16
в одном файле export const action1 = createAction(); export const action2 = createAction(); в другом файле import { action1, action2 } export const reducer = createReducer({}, 0) .on(action1, inc) .on(action2, dec)

kana
10.12.2017
17:46:35
вопрос не понятен, что это меняет?

Nikita
10.12.2017
17:47:08
вопрос не понятен, что это меняет?
ну мне все экшены в этот редюсер импортировать ?

kana
10.12.2017
17:47:40
зачем все? Экспортируй те, которые в редьюсере используешь

Nikita
10.12.2017
17:49:07
зачем все? Экспортируй те, которые в редьюсере используешь
я просто хочу как-то избавиться от 'на каждый запрос на сервер свой экшен и к нему редюсер', просто получается что я пишу куча кода который одинаковый

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

ладно, я тупой, хуйню спрашиваю сорян

пойду нормально разберусь с ducks

kana
10.12.2017
17:55:12
Ну некоторые редьюсеры можно генерировать

export const fetchUserRequest = createAction(); export const fetchUserSuccess = createAction(user => ({ user })); export const fetchUser = () => async dispatch => { dispatch(fetchUserRequest()); const user = await api.getUser(); dispatch(fetchUserSuccess(user)); }; // // Было: // const isFetching = createReducer({}, false) // .on(fetchUserRequest, () => true) // .on(fetchUserSuccess, () => false); const makeIsFetching = (requestAction, successAction) => createReducer({}, false) .on(requestAction, () => true) .on(successAction, () => false); const entity = createReducer({}, null) .on(fetchUserSuccess, ({ user }) => user); export const user = combineReducers({ isFetching: makeIsFetching(fetchUserRequest, fetchUserSuccess), entity });

Тимофей
10.12.2017
17:56:46
пойду нормально разберусь с ducks
Не, дакс это просто форма организации кода, а у тебя видимо вопрос про удобство писать код для работы с апи

kana
10.12.2017
17:57:40
да и в принципе многие редьюсеры для данных, которые получаются ассинхронно, можно генерировать, но я так делать не любил, потому что там получается оверконфигурабельность какая-то. Думаю, если так пойдет, то будущее будет за комбинаторами редьюсеров нежели за генераторами редьюсеров

Google
kana
10.12.2017
17:58:11
1) так типизируется лучше (что я не использовал) 2) так чище выглядит

Nikita
10.12.2017
18:00:07
спасибо, то что надо

kana
10.12.2017
18:04:23
да и в принципе многие редьюсеры для данных, которые получаются ассинхронно, можно генерировать, но я так делать не любил, потому что там получается оверконфигурабельность какая-то. Думаю, если так пойдет, то будущее будет за комбинаторами редьюсеров нежели за генераторами редьюсеров
например, захотим сделать данные, которых могут сразу много загружаться - придется переписывать с булеана на числа — количество загрузок. И булеаны оставить. И получится лишний параметр конфигурации. А потом то же самое в селекторе

а это для примитивного редьюсера, а че делать в entity это вообще ад

вообще конечно я осознал сейчас, что селекторы обязаны генерировать из (или одновременно с//рядом с) редьюсерами

как в indux зеробиаса, но там была сильная завязка селекторов на структуру стора мир полон противоречий и обмана

andretshurotshka?❄️кде
10.12.2017
18:15:47
как в ангуларе?)

Andrew
10.12.2017
18:17:34
Ребзи можете подсказать, почему Если внутри объекта написать: foo: () => { this. ...} то всегда будет window, а если тоже самое внутри класса то уже будет экземпляр этого класса ?

Andrew
10.12.2017
18:22:53
Почему это не объект ?

Andrew
10.12.2017
18:23:44
Разве он не создает свой контекст вызова?

Тимофей
10.12.2017
18:29:00
Разве он не создает свой контекст вызова?
Ну видимо нет, а с чего такие вопросы?

Andrew
10.12.2017
18:29:31
Ну видимо нет, а с чего такие вопросы?
Нечего делать на выходных ?

Duego
10.12.2017
18:33:12
А как в идее добавлить плагин для стайлид компонент?

Andrew
10.12.2017
18:34:20
У меня с ним веб шторм крашился

Cenator
10.12.2017
18:35:34
2) vscode-styled-components

Google
Petr
10.12.2017
18:36:39
Разве он не создает свой контекст вызова?
Нет не создает, это же стрелочная функция она ссылается на верхний контекст если без “use strict” В первом случае верхний контекст это window или global Во втором случае это class

Petr
10.12.2017
18:38:23
Это странно, почему объект не создает свой контекст
Она и создает, если твои методы объявлены обычными функциями

И в том случае если ты вызовешь этот метод через точку

Andrew
10.12.2017
18:40:04
Ну так да, у обычной функции свой this, а стрелочная берет внешний this. Просто логично что внешний this метода - это ее объект

Petr
10.12.2017
18:40:58
Нее, ты не понял this объявляется в момент вызова функции

Andrew
10.12.2017
18:42:24
Ну да, создание объекта никак не влияет на this

Petr
10.12.2017
18:49:11
А у стрелочной функции не объявляется контекст, она проста ссылается на внешний

Admin
ERROR: S client not available

Vladimir
10.12.2017
18:51:04
Ребят, вы как получаете данные в react ssr ? Пытаюсь получить данные через axios / fetch , но они не появляются в статике, не подскажите ?

kana
10.12.2017
18:51:23
когда мы пишем const x = { a: this } x.a не будет ссылаться на x, это будет тот контекст, где мы далем const x = аналогично и со стрелкой будет

Duego
10.12.2017
18:59:29
Подскажите

как свг вставлять?

kana
10.12.2017
18:59:49
я люблю react-svg-loader

Duego
10.12.2017
19:00:02
И просто импортить?

kana
10.12.2017
19:00:13
он .svg файлы в реакт-компоненты преобразует во время сборки

Evjeni
10.12.2017
19:00:50
1) установить вскод
1) не ставить вскод ради плагина 2) зайти в Preferences -> Plugins -> Browse Repositories > Styled Components

Google
kana
10.12.2017
19:01:19
да import MyIcon from “./my-icon.svg” const MyButton = ({ children, ...props }) => ( <Button {…props}> <MyIcon /> {children} </Button> );

Evjeni
10.12.2017
19:03:08
Думаю в остальных ОС аналогично

Andrey
10.12.2017
19:38:09


Дмитрий
10.12.2017
19:39:18
Каким образом стейт меняется?

kana
10.12.2017
19:41:28
у формика есть проп, который позволяет их менять

Andrey
10.12.2017
19:41:31
Стейт меняется из другого компонтента - но стейт глобальный - и в этом компоненте доступен. Он меняеться 100% - как видно на видео: я там поставил те же значния - только не в форме - а в виде текста

kana
10.12.2017
19:41:37
но это будет сбрасывать все изменения

Andrey
10.12.2017
19:42:31
То есть я прыкаю между шагами слева - это должно перересывовывать компонент справа

Всё работает

КРОМЕ ФОРМ

Я уже и redux forms пробовал

И formik

Поведение аналогичное - так что явно не в формике дело - а в чём не могу разобраться весь вечер.

kana
10.12.2017
19:44:03
ты меня проигнорил что-ли?

у формика есть проп, который позволяет их менять
https://github.com/jaredpalmer/formik#enablereinitialize-boolean

Andrey
10.12.2017
19:44:37
А! Там булеан поставить - как у redux form - чтобы реренерил?

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