169 похожих чатов

Парни, такой вопрос: есть интерсептор, при определенных условиях нужно задиспатчить

экшен. Но очевидно что так это работать не будет, потому что нельзя использовать хуки вне компонентов. Как сделать это иначе?

32 ответов

17 просмотров

store.dispatch(), стору заимпорти и крути ее как хочешь Причём тут хуки неясно

Не делать это в хуке, например?)

Vlad- Автор вопроса

нуу, в этом то и состоит вопрос: как задиспатчить что-то из интерсептора? Может какой-нибудь workaround есть

че за интерсептор?

import { store } from store.dispatch()

стор-синглтон - это антипаттерн, кстати

с редаксом тоже можно: пробрасываешь тот стор, что создал в инициализатор какой-нибудь

Чтобы в интерцепторе диспатч сделать

тролль ты =ъ

В смысле, тролль? Вот же реальный пример из реальной жизни. Сделать диспатч не из реакта

Стор — реактивное хранилище. Вьюха реакта с его контекстом — потребитель. Совать в хранилище может потребитель и не только.

А почему? По какой причине?

const initializeInterceptors = (store) => { Api.interceptors.responce.use( (error) => { store.dispatch(lalala()) } ) }

в бОльшей степени из-за сср, где на каждый реквест свой стор, а если он синглтон, то куку

я ж не против, только не импортировать синглтон во все места, а передавать его аргументов в инициализацию

А почему вообще проверять авторизацию надо в интерсепторе?? Он вообще для другого нужен. Почему нельзя сделать инит компонент, которой сходит проверить авторизацию, а потом всю приложуху отрисует?

я не знаю, я просто показал как можно сделать без синглтона

Шесть лет пишу, ни разу ssr не трогал. Он не повсеместен

справедливо. но в целом синглтон не лучший паттерн изначально

Инициализировать в одном месте и Аксиос, и стор, и реакт и (прости господи) Яндекс-метрику?

потому что нарушает инкапсуляцию и нормальные зависимости

Непонятные вещи какие-то говоришь(

dependency injection - good, singletons - bad 🙂

Это аксиомы? Почему так, а не наоборот? DI сильно повышает ментальную нагрузку. Синглтоны очень удобны.

Ну и важный вопрос — а зачем мне DI?

Знаем мы ваш DI. Сначала удобно, потом нихера непонятно, откуда что прилетает

Для spa пихуй. А так DI без фреймворка - крайне спорная вещь У себя тут бичевый DI (здравствуйте, я реакт-приложение) написал из-за физически разных контекстов приложения и жесткой необходимости в автомагической подстановке зависимостей

Ну бывает и сначала неудобно. Особенно, когда DI не нужен)

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

http://rsdn.org/forum/design/2615563.flat#2615563

Вообще не в тему, да ещё и не свои мысли 😒

Ты же знаешь, что паттерны — это общепринятые пути решения задач. Какую задачу ты тут решаешь?

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта