我经常在 @ngrx/store
中使用 reducer 来设置状态值,有时来自 http 请求
我见过的所有示例和教程都只是将有效负载设置为状态,或者通过Object.assign
或传播将有效负载设置为状态中的键。
问题是,如何验证有效负载是否有效?我遇到过很多情况,有人通过 this.store.dispatch()
提供了错误的有效负载。它可能是错误的格式,或者会丢失 key 等,这会带来无声的错误,因为商店的 reducer
会弄乱状态。对于 http 请求
来说尤其如此。
这导致我的团队项目完全乱七八糟到处都是空检查,因为我们不再信任该商店。
人们如何验证或保护他们的商店免受不良数据的影响?
我从阅读中得到了一些想法:
How can I check that two objects have the same set of property names?
最佳答案
那么人们正在向商店发送无效的操作数据?
依靠 Typescript 来验证操作负载可能还不够。如果您需要更多支持,请尝试使用 tassign ( https://www.npmjs.com/package/tassign ) 与 Object.assign
之类的东西。
如果这还不够,您可以尝试在 http 请求完成后且在分派(dispatch)之前验证效果中的数据。
关于angular - @ngrx/store reducer 有效负载验证保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49757549/