Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.08.2022, 16:47
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 108

react toolkit
Доброе время суток
нужно в редюсере вызвать другой редюсер
setAnimate(state,{payload:id}:PayloadAction<number>){
...
},
clickPuzzle(state,{payload:id}:PayloadAction<number>){
  puzzlesSlice.caseReducers.setAnimate(state,id);
//puzzlesSlice.caseReducers.setAnimate(state,{payload:id});
}

ругается на отправляемые параметры setAnimate()
Код:
(parameter) id: number
Аргумент типа "number" нельзя назначить параметру типа "{ payload: number; type: string; }".
что не так понятно, но как ???
спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 12.08.2022, 18:51
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 108

clickPuzzle(state,{payload:id,type}:PayloadAction<number>){
  puzzlesSlice.caseReducers.setAnimate(state,{payload:id,type}); 
}
так решил проблему, работает, но меня берут сомнения что я верно это делаю, да и с PayloadAction<number> это не вяжется
Ответить с цитированием
  #3 (permalink)  
Старый 12.08.2022, 18:52
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от od0201
что не так понятно, но как ???
Если всё понятно, то в чем вопрос?

У вас вторым аргументом должен быть объект типа PayloadAction<number>, судя по сообщению об ошибке PayloadAction должен иметь 2 свойства: payload типа number и type типа string.

ts playground

Необходимый тип action'а для редьюсера setAnimate подставить не забудьте.
Ответить с цитированием
  #4 (permalink)  
Старый 12.08.2022, 23:15
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 108

Теперь немного понятно, есть сомнение правильный ли подход. В примере из гугла параметры вообще не передавали. Тек-же кажется странным что type вообще в не используется, что бы мы туда не записали, все равно работает как надо.
puzzlesSlice.caseReducers.setAnimate(state,{payload:id,type:'puzzles/setAnimate'});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
React + Redux Toolkit od0201 Библиотеки/Тулкиты/Фреймворки 1 19.01.2022 21:36
Как правильно отрендерить данные на react с разрывом? s24344 Элементы интерфейса 0 28.01.2019 19:35
виджет комментариев переделать с react на redux melnikov24 Node.JS 1 17.01.2019 12:51
React Router - re-render компонента при смене url smegol Библиотеки/Тулкиты/Фреймворки 9 29.09.2018 23:58
Ищу Senior Frontend (React, Angular), Москва, 140 - 180 000 gross, full time офис. Ekaterina Polyakova Работа 0 11.08.2016 19:07