credentials: 'same-origin'
}).then(handleErrors);
-> handleErrors ->
const handleErrors = response => response.ok ? response :
response.text().then((textResponse) => {
if (response.status === 400) {
showModalDialog(textResponse);
}
//throw {status: response.status, body: textResponse, statusText: response.statusText};
}); -> showModalDialog..... вот тут.
эти файлы живут не в react среде и нужно как-то 'дергать реакт'. вопрос как? ибо это common подход для всех запросов и обрабатывать так для каждого- сложно и не имеет смысла
"и файлы живут не в react среде и" - не нужно создавать себе проблем что б потом мужественно их решать
а как ты поместишь все апи реквесты в реакт? провайдера для этого создашь?
Зачем апи реквесты помещать в реакт?
чтобы можно было дать сигнал модалке на отображение, ибо из вне ты не можешь общаться с реактом
Я могу😐 и ты сможешь)
Иметь систему реактивности вне реакта (например redux, или кастомные как сделано в той же react-toastify, как подсказали выше)
redux есть, но опять же к нему надо заиметь доступ, а хранить его в отдельной глобальной переменной -говно идея 😄 сейчас ищу как сделано в тосте 🙂
А почему к нему нет доступа из api колов?
а как ты получишь к нему доступ? диспатч будешь передавать?)
А че там нельзя просто импортировать сущность в любой файл и вызвать экшен?
нет же вроде? это же провайдер
Какую сущность? Что?
ну можно ж синглон store импортнуть и диспатчить че угодно
про что я и говорил, хранить в отдельной переменной ссылку на стор? это же дибилизм
А вы сейчас не храните нигде ссылку на стор?🌚
как бы странно не было- храним, но я избавляюсь от этого. Идет редезайн и я выпиливаю его отовсюду, где вижу
И как вы планируете полностью избавиться от этого?
работать так, как это запланировал реакт. передавать нужные данные в нужные места.
какой реакт о чем вы? Вы инстанс стора все равно будете передавать в провайдер и как раз плюс (типа) редакса в том что он не приколочен к реакту, а вы хотите приколотить ? Зачем?
Иначе никак. Но это может быть не стор, а event emitter, как в react-toastify
мы его не приколачиваем. мы не даем к нему доступа из вне.
ee - система реактивности на минималках
ну вот сейчас смотрю и думаю. может сделать через customEvent?
а зачем давать доступ из вне к тому, что может влиять на данные? банально - безопастность. хоть мы и говорим сейчас про JS
Из какой "вне"? Это же просто другая часть пользовательского кода?
ну собственно да.
Запил простой репродьс с тоастом и глобальной функцией toast https://codesandbox.io/s/lively-feather-jxxsn?file=/src/App.tsx
Хм, очень интересно, кстати :) может быть так даже будет и лучше, чтобы не завязывать это дело на главный стор
Решение тоже завязано на стороннюю систему реактивности (это подход един, стоит только выбрать ее), а именно стейт менеджер эффектор
Угу, вижу. И поэтому мне это и нравится. Так как это собственно не рушит концепцию реакта, и одновременно это отдельная среда для показа нотификаций. Которая выполняет свою работу :) круто. Спасибо. Не знал о таком
Обсуждают сегодня