Size: a a a

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

2020 July 11

И

Иван in React — русскоговорящее сообщество
Kamo Spertsyan
Как визуально это сделать я представляю, а вот как вызывать её?
Посмотри, как сделано в react-toastify. А лучше возьми эту библиотеку и используй
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Kamo Spertsyan
Спасибо, но, кажется, не совсем то, что мне нужно..


Поясню. Я хочу иметь возможность при любой ошибке в серверном запросе показать алерт с каким-то сообщением и кнопкой "попробовать ещё". Методы с запросами могут быть за рамками компонентов. Я также не хочу добавлять какой бы то ни было повторяющийся код на каждой странице, которая отправляет запросы
1. По поводу методов вне компонента. Значит что-то типа ридакса стоит. А значит просто обрабатываешь серверную ошибку и сохраняешь в сторе нужную тебе строку при ошибке и потом ты просто везде можешь кидать эту строку.
2. По поводу "не хочу добавлять повторяющийся код". Тебе все равно где-то в ui отрисовывать это. Ты это можешь делать на самом верхнем компоненте твоего route. И тогда повторение минимально будет.

Ну либо пользуйся нативным alert или confirm
источник

KS

Kamo Spertsyan in React — русскоговорящее сообщество
Иван
Посмотри, как сделано в react-toastify. А лучше возьми эту библиотеку и используй
Спасибо, смотрю
источник

KS

Kamo Spertsyan in React — русскоговорящее сообщество
Rustam Sahatov
1. По поводу методов вне компонента. Значит что-то типа ридакса стоит. А значит просто обрабатываешь серверную ошибку и сохраняешь в сторе нужную тебе строку при ошибке и потом ты просто везде можешь кидать эту строку.
2. По поводу "не хочу добавлять повторяющийся код". Тебе все равно где-то в ui отрисовывать это. Ты это можешь делать на самом верхнем компоненте твоего route. И тогда повторение минимально будет.

Ну либо пользуйся нативным alert или confirm
Да, юзаю редакс. Я примерно над таким решением и думаю, но что делать, если мне нужно какие-то экшны вкрутить? Вроде класть в редьюсеры коллбеки, а потом получать их в компоненте алерта, идея не очень
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Kamo Spertsyan
Да, юзаю редакс. Я примерно над таким решением и думаю, но что делать, если мне нужно какие-то экшны вкрутить? Вроде класть в редьюсеры коллбеки, а потом получать их в компоненте алерта, идея не очень
Не понял. Какие еще колбэки в редьюсере?
источник

KS

Kamo Spertsyan in React — русскоговорящее сообщество
Rustam Sahatov
Не понял. Какие еще колбэки в редьюсере?
Я в каком-нибудь thunk action-е хочу показать alert, если сервер вернул ошибку, с кнопкой "Повторить".

Я диспатчу экшн, в который передаю текст ошибки для алерта, редьюсер ловит экшн, кладёт поля в стор, далее ререндерится компонент алерта, достаёт из стейта поля и показывает.

Вот в этой картинке не хватает экшна "Повторить". Как мне сообщить компоненту алерта, что делать по нажатию на кнопку?
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Kamo Spertsyan
Я в каком-нибудь thunk action-е хочу показать alert, если сервер вернул ошибку, с кнопкой "Повторить".

Я диспатчу экшн, в который передаю текст ошибки для алерта, редьюсер ловит экшн, кладёт поля в стор, далее ререндерится компонент алерта, достаёт из стейта поля и показывает.

Вот в этой картинке не хватает экшна "Повторить". Как мне сообщить компоненту алерта, что делать по нажатию на кнопку?
Юзаешь в качестве референса эти два сообщения
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Kamo Spertsyan
Я в каком-нибудь thunk action-е хочу показать alert, если сервер вернул ошибку, с кнопкой "Повторить".

Я диспатчу экшн, в который передаю текст ошибки для алерта, редьюсер ловит экшн, кладёт поля в стор, далее ререндерится компонент алерта, достаёт из стейта поля и показывает.

Вот в этой картинке не хватает экшна "Повторить". Как мне сообщить компоненту алерта, что делать по нажатию на кнопку?
Модалка - это тоже часть представления, которое зависит от состояния, лучше управлять ее отображением из компонентов , на мой взгляд
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Vladimir Klimov
Модалка - это тоже часть представления, которое зависит от состояния, лучше управлять ее отображением из компонентов , на мой взгляд
Сделай или используй готовый переиспользуемый компонент с удобным апи, это будет лучше, чем метод, который будет вызываться из редьюсера
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Если я не прав - было бы интересно выслушать аргументы)
источник

A

Anton in React — русскоговорящее сообщество
Добрый день люди! Буду признателен если кто-нибудь даст совет по проблеме. Есть массив реакт компонентов в родительсвом компоненте, при событии в родительском компоненте надо пробежаться по массиву дочерних компонентов и для каждого вызвать его внутренний метод. Я так понимаю это не делается так как в классах в vanilla JS?
Вот тут накидал структуру https://jsfiddle.net/jkLq26pg/36/
На строчке 11 отваливается по ошибке если вызывать метов value() для компонента Item. Как можно вызывать методы в таком случае?
источник

KS

Kamo Spertsyan in React — русскоговорящее сообщество
Vladimir Klimov
Сделай или используй готовый переиспользуемый компонент с удобным апи, это будет лучше, чем метод, который будет вызываться из редьюсера
Я же не говорю про вызов методов из редьюсера. Я хочу просто иметь метод с сигнатурой типа такого:
showAlert(message: string, actionText: string, onActionClick: () => {}).

И не очень понимаю, как это реализовать средствами редакса.

Библиотека react-toastify даёт в принципе нужную мне функциональность, так что я заюзаю её. Но вообще всё равно интересно, как без неё реализовать такое
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Kamo Spertsyan
Я же не говорю про вызов методов из редьюсера. Я хочу просто иметь метод с сигнатурой типа такого:
showAlert(message: string, actionText: string, onActionClick: () => {}).

И не очень понимаю, как это реализовать средствами редакса.

Библиотека react-toastify даёт в принципе нужную мне функциональность, так что я заюзаю её. Но вообще всё равно интересно, как без неё реализовать такое
Мой вопрос: почему это должно быть реализованно средствами редакса? Грубо говоря, при чем тут редакс?
источник

KS

Kamo Spertsyan in React — русскоговорящее сообщество
Vladimir Klimov
Мой вопрос: почему это должно быть реализованно средствами редакса? Грубо говоря, при чем тут редакс?
Я не привязываюсь к нему. Если есть варианты без него - то даже лучше. Просто я их не вижу/не знаю)
источник

DM

Dmitriy Marynenko in React — русскоговорящее сообщество
как  можно изменить данную  ошибку,  сделал  все  как указано в док модуля но  ошибка   не исчезла
источник

И

Иван in React — русскоговорящее сообщество
Dmitriy Marynenko
как  можно изменить данную  ошибку,  сделал  все  как указано в док модуля но  ошибка   не исчезла
Значит не так сделал. А как сделал никто не угадает. Делай как в доке
источник

И

Иван in React — русскоговорящее сообщество
Anton
Добрый день люди! Буду признателен если кто-нибудь даст совет по проблеме. Есть массив реакт компонентов в родительсвом компоненте, при событии в родительском компоненте надо пробежаться по массиву дочерних компонентов и для каждого вызвать его внутренний метод. Я так понимаю это не делается так как в классах в vanilla JS?
Вот тут накидал структуру https://jsfiddle.net/jkLq26pg/36/
На строчке 11 отваливается по ошибке если вызывать метов value() для компонента Item. Как можно вызывать методы в таком случае?
Лень читать код. Вообще так не делают в реакте, как ты хочешь. Опиши задачу
источник

И

Иван in React — русскоговорящее сообщество
Kamo Spertsyan
Я не привязываюсь к нему. Если есть варианты без него - то даже лучше. Просто я их не вижу/не знаю)
Ну посмотри в исходники библиотеки, они открытые. Вот так, как там написано, так делают
источник

A

Anton in React — русскоговорящее сообщество
Иван
Лень читать код. Вообще так не делают в реакте, как ты хочешь. Опиши задачу
Попробую без кода.
Есть компонент "Огород", в огороде массив компонентов [ "Картошка", "Арбуз", "Вишня"]
У каждого из компонентов  "Картошка", "Арбуз", "Вишня", есть метод "Собрать урожай" с разной логикой:
- картошку выкопать
- арбуз собрать
- вишгю сорвать
Так вот при событии "собрать урожай" во всем огороде, надо пробежаться по массиву и вызвать метод "Собрать урожай"
источник

RU

Roman Usherenko in React — русскоговорящее сообщество
Anton
Попробую без кода.
Есть компонент "Огород", в огороде массив компонентов [ "Картошка", "Арбуз", "Вишня"]
У каждого из компонентов  "Картошка", "Арбуз", "Вишня", есть метод "Собрать урожай" с разной логикой:
- картошку выкопать
- арбуз собрать
- вишгю сорвать
Так вот при событии "собрать урожай" во всем огороде, надо пробежаться по массиву и вызвать метод "Собрать урожай"
повторю фразу Ивана
так в реакте не делают
источник