Valeriy
Всем привет кто нибудь использовал rematch с тайпскриптом на проекте?
Юрий
В саге put это аналог dispatch
да, но если отправить в модалку в пропсах через put, в модалке я не могу вызвать этот action
Oleg
Ребят, я правильно понимаю, что для состояния показа опций в селекте лучше использовать локальный стейт потому что если хранить в redux, у меня будут все селекты показываться а не только тот на который нажал
Roman
value={{a, b, c}}
Я что т не оч понял, у меня const [a, setA] = useState([1,2,3]) const [b, setB] = useState([1,2,3,4,5]) Я писал ранее value={[a,setA]} А как b и setB сюда добавить?
Maxim
в сагу запихнуть useDispatch, что бы отправить модалке мой диспатч экшена?
не я думал ты хочешь в реакте в модалке диспатч
Юрий
не я думал ты хочешь в реакте в модалке диспатч
в модалку для начала ведь прокинуть нужно, а внутри саги сделать это не могу.
Nikolai
да, но если отправить в модалку в пропсах через put, в модалке я не могу вызвать этот action
Сага - это про эффекты и стор. Она вообще ничего про модалки и дом не должна знать
Юрий
Сага - это про эффекты и стор. Она вообще ничего про модалки и дом не должна знать
такой изначально вопрос и был, как мне открывать и закрывать модалки, после того как выполнился запрос и получился success или error
Dmitry
Ребят, подскажите плиз, почему так может происходить: Если нажать обновление страницы на определенном роуте (например myapp.ru/myroute) сервер выдает ошибку: (локально все работает прекрасно, проблем не возникает) Object not found! The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again. If you think this is a server error, please contact the webmaster. Error 404 Thu Nov 28 12:37:31 2019 Apache/2.2.29 (Gentoo) mod_dp/0.99.7 PHP/7.1.26
Юрий
Не совсем понимаю почему внутри модалки не диспатчить CLOSE MODAL?
окей, можно модалке захардкодить закрытие, а кнопка которая "ОКЕЙ", что она будет делать?
Юрий
что бы не создавать 50 модалок, можно ведь сделать универсальную, которая принмает onClick функцию и подставляют ее на нажатие "OK"
Юрий
Завести экшены на открытие/закрытие модалки и хранить это состояние в сторе
у меня есть экшены и на открытие и на закрытие, но откуда их дергать, с какого места, в этом вопрос
Юрий
сейчас они дергаються в саге, после обработки запроса
Dmitry
Настройте сервер отдавать на все роуты ваш index.html Гуглите configure apache for SPA
Спасибо! Первый запрос дал ответ <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] </IfModule> Только куда его пихать?
Юрий
С компонента
как я в компоненте пойму когда мне нужно открыть и дернуть экшн?
Александр
окей, можно модалке захардкодить закрытие, а кнопка которая "ОКЕЙ", что она будет делать?
В порядке маразма: function* () { const submitChannel = channel(); const cancelChannel = channel(); yield put(modalActions.showModal({ body: { onClick: (valuesFromModal) => submitChannel.put({type: 'SUBMIT', payload: valuesFromModal}), onClose: () => cancelChannel.put({type: 'CANCEL'}), } }, "FORGOT_PASSWORD")); const [submit, cancel] = yield race([take(submitChannel), take(cancelChannel)]); yield put(modalActions.closeModal()); }
Юрий
Когда у тебя изменится стор
смотри, например такой кейс: страница ресет пароля. ты водишь почту, нажимаешь ресет пароль. идет запрос на сервер -> например запрос ушел и пароль сбросился. после запроса должна открыться модалка и написать: пароль был отправлен и тд" Ты нажимаешь ОК, должен редирект на логин произойти.
Roman
Прокидывай не список, а объект.
Блин, я не понимаю, как это записать (
Roman
value={{a, setA, b, setB}}
Да пробовал так, не работает что-то.
Александр
Да пробовал так, не работает что-то.
А что не работает конкретно?
Roman
А что не работает конкретно?
arr[Symbol.iterator] is not a function
Юрий
У тебя на странице ресета 50 модалок? Добавь её сразу с нужным колбеком
Сейчас много однотипных, я хочу сделать одну которая будет принимать разные колбэки
Roman
Вот взгляните плз тут - я пытаюсь контекст передать https://codesandbox.io/s/schedule-x3v2i?fontsize=14&hidenavigation=1&theme=dark
Юрий
Но не решил откуда она будет дергаться, что бы открываться
Nikolai
Сейчас много однотипных, я хочу сделать одну которая будет принимать разные колбэки
Передавай колбеки через payload экшена значит, но не думаю что хорошая идея хранить их в сторе
A
Здравствуйте, использую либы recharts для построения графиков, нужно вместо стандартного столбца сделать вот такой вот Может он как-то через svg рисуется
Александр
Александр
const [workDays, setWorkDays] -> {workDays, setWorkdays}
value же вы контекст провайдеру передали в виде обьекта, почему ожидаете что тут будет массив?
Roman
const [workDays, setWorkDays] = useContext(StoreContext); там не список а обьект
не у меня список там. Он мапится. Если правильно понял.
Александр
Вот тут бы помог TS, такое бы в принципе не собралось даже
Александр
не у меня список там. Он мапится. Если правильно понял.
value={{ workDays, setWorkDays, firstHour, setFirstHour }} что вы в value передаете?
Yury
не у меня список там. Он мапится. Если правильно понял.
посмотрел бы сперва чему равно const value = useContext(StoreContext);
Roman
посмотрел бы сперва чему равно const value = useContext(StoreContext);
короче я в конец запутался. Я первый день сегодня контекст пробую.
Александр
короче я в конец запутался. Я первый день сегодня контекст пробую.
useContext вернет вам в точности тоже что вы передали в value
Roman
Просто хотел как есть Стейты передать в Валью. Но чё-то тут всё усложняется.
Yury
Просто хотел как есть Стейты передать в Валью. Но чё-то тут всё усложняется.
ничего не усложняется, посмотрите что возвращает useContext(StoreContext) перед тем как работать со значениями
Roman
Короче в дочернем компоненте я неправильно деструктурировал?
Yury
да
Roman
вместо списка нужно объект?
Yury
посмотри!
Nikolai
Сейчас много однотипных, я хочу сделать одну которая будет принимать разные колбэки
Через take ещё кстати можно попробовать ожидать экшены изнутри модалки, чтобы колбеки не хранить в сторе
Александр
вместо списка нужно объект?
Вы читаете что вам писали выше? useContext вернет вам в точности тоже что вы передали в value. Просто посмотрите что возвращает вам useContext в console.log
Nikolai
take только внутри саги можно же
Да, я это и имел виду. Допустим при открытии модалки сага подписывает ещё 2 саги на события изнутри модалки - на закрытие и на подтверждение с запуском колбека, который пришёл с открытием
Shimon
а как?
Разве выполнение кода приостанавливается, когда натыкается на промис?
Shimon
От async/await "асинхронная вещь" синхронной не становится, то за вопросы вообще?
Вопрос в том, чтобы это выглядело как синхронный код. Чтобы следующая строка не выполнялась
Danila
Вопрос в том, чтобы это выглядело как синхронный код. Чтобы следующая строка не выполнялась
Тогда - только async/await или их какая-то своя реализация через генераторы
Looch
async функция всегда вернет промис
Looch
выше ребята правильно написали что никак и это просто вопрос с подвохом
Looch
Ок. Ну и что?
ну значит будет не синхронно,основной поток выполнения не будет ждать завершения async функции
Looch
а если внутри такой функции написать await ?
и что ? ты можещь подождить другую async. функцию
Shimon
и что ? ты можещь подождить другую async. функцию
ты ждешь возврашения resolve из промиса, а последующий код пока не выполняется
Evgen
а если внутри такой функции написать await ?
У тебя есть сетТаймаут - как из него сделать так, что бы следующим за ним код не выполнялся? Так что ли звучит вопрос?
Sergei
Вопрос в том, чтобы это выглядело как синхронный код. Чтобы следующая строка не выполнялась
судя по твоему ответу на вопрос, он заключался в том как организовать очередь из асинхронных операций, выше правильно же ответили промисы, колбекхелл, асинки, генераторы
Evgen
Да.
Тогда никак )
Nikolai
Да.
Обернуть в async функцию
Shimon
Тогда никак )
Ну почему. async/await сработает