Size: a a a

React — русскоговорящее сообщество

2020 December 24

AA

Andrey Anelkin in React — русскоговорящее сообщество
задача такая: после получение 400 ошибки от сервера, вывести модалку, которая будет поставляться от back'a. при том этот обработчик стоит на все запросы. как это понятно, запросы идут через js, а не через реакт и мне нужен обработчик для вставки и отображению этой модалки. при том их может быть несколько.
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
рендерить реакт компоненты из вне- говно идея и пришел к такому варианту, но хз как реализовать
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
сча попробую с примером.
источник

И

Иван in React — русскоговорящее сообщество
Andrey Anelkin
задача такая: после получение 400 ошибки от сервера, вывести модалку, которая будет поставляться от back'a. при том этот обработчик стоит на все запросы. как это понятно, запросы идут через js, а не через реакт и мне нужен обработчик для вставки и отображению этой модалки. при том их может быть несколько.
После получения 400 от сервера дергать реакт, чтобы он показал модалку
источник

BM

Borislav Mitrofanov in React — русскоговорящее сообщество
+
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
OnClick-> API ->  
fetch(geometryUrl, {
 method: 'GET',
 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 подход для всех запросов и обрабатывать так для каждого- сложно и не имеет смысла
источник

И

Иван in React — русскоговорящее сообщество
Andrey Anelkin
задача такая: после получение 400 ошибки от сервера, вывести модалку, которая будет поставляться от back'a. при том этот обработчик стоит на все запросы. как это понятно, запросы идут через js, а не через реакт и мне нужен обработчик для вставки и отображению этой модалки. при том их может быть несколько.
Посмотри, как в исходниках react-toastify реализована функция notify, которую можно вызвать откуда угодно, а она что-то там делает и показывает реакт-компонент
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Andrey Anelkin
OnClick-> API ->  
fetch(geometryUrl, {
 method: 'GET',
 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 среде и" - не нужно создавать себе проблем что б потом мужественно их решать
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
Dmitriy Shuleshov
"и файлы живут не в react среде и" - не нужно создавать себе проблем что б потом мужественно их решать
а как ты поместишь все апи реквесты в реакт? провайдера для этого создашь?
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
Иван
Посмотри, как в исходниках react-toastify реализована функция notify, которую можно вызвать откуда угодно, а она что-то там делает и показывает реакт-компонент
спасибо, сча гляну 🙂
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Andrey Anelkin
а как ты поместишь все апи реквесты в реакт? провайдера для этого создашь?
Зачем апи реквесты помещать в реакт?
источник

И

Иван in React — русскоговорящее сообщество
Andrey Anelkin
спасибо, сча гляну 🙂
Не notify, а toast. Разберёшься
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
Dmitriy Shuleshov
Зачем апи реквесты помещать в реакт?
чтобы можно было дать сигнал модалке на отображение, ибо из вне ты не можешь общаться с реактом
источник

DP

Dmitry Plyaskin in React — русскоговорящее сообщество
Andrey Anelkin
задача такая: после получение 400 ошибки от сервера, вывести модалку, которая будет поставляться от back'a. при том этот обработчик стоит на все запросы. как это понятно, запросы идут через js, а не через реакт и мне нужен обработчик для вставки и отображению этой модалки. при том их может быть несколько.
ReactDOM.render(<Modal/>, div)
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Andrey Anelkin
чтобы можно было дать сигнал модалке на отображение, ибо из вне ты не можешь общаться с реактом
Я могу😐 и ты сможешь)
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
Dmitriy Shuleshov
Я могу😐 и ты сможешь)
как?
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Иметь систему реактивности вне реакта (например redux, или кастомные как сделано в той же react-toastify, как подсказали выше)
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
Dmitriy Shuleshov
Иметь систему реактивности вне реакта (например redux, или кастомные как сделано в той же react-toastify, как подсказали выше)
redux есть, но опять же к нему надо заиметь доступ, а хранить его в отдельной глобальной переменной -говно идея 😄 сейчас ищу как сделано в тосте 🙂
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Andrey Anelkin
redux есть, но опять же к нему надо заиметь доступ, а хранить его в отдельной глобальной переменной -говно идея 😄 сейчас ищу как сделано в тосте 🙂
А почему к нему нет доступа из api колов?
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
Dmitriy Shuleshov
А почему к нему нет доступа из api колов?
а как ты получишь к нему доступ? диспатч будешь передавать?)
источник