问题描述
自上周以来,我已将我的应用程序迁移到了ngrx。现在,我面临一个问题:我的应用在整个应用运行期间都需要访问File对象。由于ngrx仅存储JSON对象,因此不能存储File对象和其他类型的类。
使用ngrx处理文件对象的最佳方法是什么?我是否必须将它们转换为JSON对象并将其保存到商店中,还是必须将它们保存在商店之外?还是还有其他方法?
上下文:该应用程序执行音频处理并利用其他文本文件。
为了进一步处理,我需要文件的内容,名称和大小。我曾考虑过制作一个JSON对象,但这可能效率不高(因为ngrx会创建其状态的副本):
{
name: string;
size: number;
buffer: ArrayBuffer;
}
解决方法
保存文件,异步调用,localStorage / sessionStorage等均视为副作用。
查看Ngrx Effect文档。
您应将文件或其他复杂对象转换为JSON并存储在商店中。
,ngrx可以像其他任何服务一样存储File对象。因为浏览器的redux插件无法正确输出File对象,所以我认为ngrx不支持File对象。如果我将当前状态输出到控制台,则文件列表应该是可用的。