🐏 Alexander
ну чем тогда это отвечает на вопрос, в чем отличие action и action creator?
action - это просто название события action creator - это функция которая возвращает объект с типом события (названием) и возможно еще данными
Anonymous
Английский не учим? 😄
Vladimir
ну чем тогда это отвечает на вопрос, в чем отличие action и action creator?
юзай эффектор, там нет ни экшенов, ни экшен-креаторов
Китикет
юзай эффектор, там нет ни экшенов, ни экшен-креаторов
Ух, благодать, так все становится куда проще :))))
Bogdan
Экшн - обьект с типом и допольнительными данными, экшн-креатор - функция, возвращающая такой обьект
вот чем это export function addTodo(text) { return { type: ADD_TODO, text } } отличается от этого? export const signIn = (email, password) => ({ type: types.SIGN_IN, promise: Request.post(`/${USERS}/signin`, { email, password }) });
Anonymous
Количеством символов
Китикет
Количеством строк)
Китикет
вот чем это export function addTodo(text) { return { type: ADD_TODO, text } } отличается от этого? export const signIn = (email, password) => ({ type: types.SIGN_IN, promise: Request.post(`/${USERS}/signin`, { email, password }) });
Ну, если серьезно, то первое - нормальный action creator, а второе - это когда пошел в лес за грибами, вот такое
Arthur
суть в чём: перед переходом на страницу какую-то, нужно проверить url, по которому переходишь (параметры в кверистринге). для этого остылается запрос, где параметры валидируются далее происходит редирект по этому запросу и replacе'ом изменяется история в браузере
Bogdan
Количеством строк)
как в первом отправить запрос на подключение тогда? тут ведь так сделано чот бы не писать then catch
Arthur
сейчас написал такой вот хок, но мне это решение не оч заходит https://www.paste.org/98608
Arthur
(на самом деле, я ещё даже не успел проверить, работает оно или нет)
Китикет
как в первом отправить запрос на подключение тогда? тут ведь так сделано чот бы не писать then catch
Ты все равно пишешь then catch, только в другом месте. Запрос - это сайд эффект, который нежелательно засовывать в чистый экшн. Для этого юзают асинхронные экшн-креаторы, с помощью thunk например, и выносят в них эти и подобные сайд эффекты
Китикет
как в первом отправить запрос на подключение тогда? тут ведь так сделано чот бы не писать then catch
А по сути, они отличаются тем, что в первом action creator нормальные данные, а во втором ненужный промис
Китикет
А так идентично)
Китикет
а как второй будет выглядеть если сделать под первый?
Никак) Потому что signIn должен быть асинхронным и диспатчить внутри другие экшны, типа SIGN_IN_REQUEST, SIGN_IN_SUCCESS и SIGN_IN_FAILURE
Китикет
Соответственно, его нельзя представить как обычный action creator
Maksim
Где эта логика?)
в мидлваре очевидно, там же где и у санков
Китикет
в мидлваре очевидно, там же где и у санков
Я не в этом смысле спрашивал)
Китикет
Это было бы не дичью, если бы в абсолютно каждом случае, сайд эффекты сводились лишь к одному запросу, который вот так вот можно вынести в миддлвару, и в случае успеха задиспатчить SUCCESS, а при ошибке - ERROR
Китикет
А если надо записать токен в localStorage после авторизации, где будешь делать это?
Китикет
вот так видимо криво?
Получается бесполезная мидлвара, применимая лишь к экшнам, которые предназначены для авторизации
Китикет
она для всех екшенов, которые отправляют запрос куда либо
Будешь писать такие условия под каждый отдельный случай?
Китикет
А если там в ответе есть поле token, но это запрос вообще не для авторизации?
Bogdan
Китикет
Например вообще другой токен)
Китикет
что поможет решить проблему условий?
Наверное проще всего почитать документацию thunk
Bogdan
вот так что ли лучше? каждому все это писать?
Олег
кто-нибудь сбрасывал триал период вебшторма на маке в этом году? у меня тут бюрократический аппарат тормозит покупку лицензии, думаю как продлить триал
Default
У меня сейчас и лицензия не работает
Олег
Никак, разве что даунгрейднуться до 2018
в этом году выпилили возможность сброса?(
Default
Написал в поддержку, глуховато
Олег
ого, почему не работает?
Default
ого, почему не работает?
А хрен её знает, пишет, что не может проверить ключ
Default
hosts чистый, доступ к серверам активации есть
Олег
жестко
Олег
я нашел вот такое: https://crunchdroid.com/intellij-trial-reset-mac/ но что-то прочитал, что options.xml не котируется сейчас
Bogdan
Да
серьездно?
Китикет
Default
Теперь она вроде в бинарях спрятана
Олег
ацтой)) на чем писать то
Олег
Теперь она вроде в бинарях спрятана
я месяц назад поставил, evaluation key все также лежит
Bogdan
Да
я понял action creator это вот простой создатель действия, а если запрос отправить то уже что то другое?
Китикет
Как я понял, там вообще перепилили всю активацию
А как там расшаренные лиц. сервера? Работает еще?)
Default
Всех побанили
Default
Никто не рискует шарить
Default
Вообще заплатить за шторм не грех, но я-то уже заплатил :(
Китикет
я понял action creator это вот простой создатель действия, а если запрос отправить то уже что то другое?
Можешь называть его "асинхронный action creator", если проще всего) Но вообще он не обязательно должен быть асинхронным и вообще связанным с какими-либо запросами куда-либо
Китикет
Default
Сижу пока на 2018
Китикет
action просто название екшена и все, a action creator это сама функция?
Не, action это обьект с type и другими данными (если они есть)
Китикет
Чел сверху неправильно сказал
Китикет
А название экшна - это action type
Bogdan
Не, action это обьект с type и другими данными (если они есть)
а action creator тогда что 😒 если action обьект с type и другими данными
Китикет
action - действие
Китикет
action creator - создатель действия
Китикет
Вопрос закрыт?)
Bogdan
create - создавать creator - создатель
я создателя пример то увижу? это действие или создатель?...
Bogdan
Увидел
это creator? export function addTodo(text) { return { type: ADD_TODO, text } }
Bogdan
Да!)
таак, а action это вот это??
Тимофей 🛴