【问题标题】:some questions about ngrx-store-freeze and [(ngModel)] in angular关于 ngrx-store-freeze 和 [(ngModel)] 的一些问题
【发布时间】:2019-11-15 16:48:10
【问题描述】:

我在角度使用ngrx/storengrx-store-freeze。我发现了一些我真的不明白的东西。

我有一个模型:

Book {
  id: number;
  name: string;
  active: boolean;
}

在我的减速器中,我存储了书籍:

export interface State extends EntityState<Book> {
  bookId: number;
}

当我从父组件的 store 中获取books 并将其异步传递给子组件时,无疑无法修改。

但是,当我深度克隆books时,它仍然无法修改。我试过lodash.cloneDeep(),JSON.parse(JSON.stringify()),无法修改。

有趣的是,当我使用Object.isFrozen() 测试每个变量是否来自ngrx/store 时,结果总是正确的。

有人知道吗?

【问题讨论】:

  • 这不可能。如果您执行“const newBooks = JSON.parse(JSON.stringify(books))”,是否将对象传递到链中并不重要,您将能够修改 newBooks 对象而不会冻结,因为您正在使用不影响存储的新引用创建一个新对象。
  • @IvanMihaylov 是的,我明白这一点。但我确实尝试了各种方法从商店克隆值,它只是无法修改。我真的不知道为什么。

标签: angular freeze deep-copy ngrx-store


【解决方案1】:

已解决,我使用的组件和ngrx-store-freeze之间存在一些错误

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 1970-01-01
    • 2017-03-29
    • 2018-09-08
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    相关资源
    最近更新 更多