Экземпляры объекта на основе класса для состояния в NGXS - PullRequest
1 голос
/ 17 января 2020

Руководство по стилю NGXS имеет точку:

Не рекомендуется добавлять экземпляры объектов на основе классов в ваше состояние, поскольку это может привести к неопределенному поведению в будущем.

например,

//== This is NOT recommended:
ctx.setState((state: Todo[]) => state.concat(new Todo(action.title)));

//== This is recommended
state.concat({ title: action.title, isCompleted: false })

Почему создание экземпляра класса с new не рекомендуется?

1 Ответ

0 голосов
/ 17 января 2020

Поскольку эти созданные объекты имеют несколько свойств, таких как функции, конструктор, возможно, частные свойства и т. Д. ... вы не хотите сохранять эти свойства тоже!

В вашем Todo должна быть функция экспорта -класс:

interface TodoModel {
  /* your properties you want to take care of! */
}

class Todo implements TodoModel {
  export(): TodoModel {
  }

  import(model: TodoModel) {
  }
}
...