Redux-saga store преобразует пользовательский класс в простой объект - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь сохранить пользовательский вызов User в магазине, используя мой редуктор. Проблема в том, что редуктор преобразует пользовательский класс в простой объект, заменяя свойства класса на свойства простого объекта. Это означает, что никакие методы класса не могут быть вызваны, когда я получаю этот класс из хранилища.

У моего класса User есть метод getGroup, который нельзя вызвать после извлечения пользователя из хранилища.

Например,

class User {
   constructor(data){
       this.data = data;
       this.id = data.id;
   }

   getGroup() {
       return this.data.group;
   }
}

будет преобразовано в:

{
    data: {
        id: 1, 
        group: "Some group"
    },
    id: 1
}

Я использую connect из библиотеки react-redux, чтобы отобразить состояние хранилища в React props.

Любая идея, как мне это сделать:

  • Конвертировать в правильный класс User, когда сага редукса получает свойство из своего хранилища (например, модифицирующий метод получения)
  • Разрешить редуктор для хранения моего User Класс

1 Ответ

1 голос
/ 04 февраля 2020

Никогда не следует помещать несериализуемые значения в хранилище Redux. :

Избегайте размещения несериализуемых значений, таких как Promises, Символы, Карты / Наборы, функции или экземпляры классов в состояние хранилища Redux или отправленные действия . Это гарантирует, что такие возможности, как отладка с помощью Redux DevTools, будут работать как положено. Это также гарантирует, что пользовательский интерфейс будет обновляться как ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...