我现在有一个Redux操作,如下所示:
{
  type: 'user/updateRequested',
  payload: {name: 'Foo', avatar: File}
}该文件是不可序列化的,所以我想知道是否有更好的方法。
当行动被派遣时,会发生三件事:
avatar
state.user.name但忽略state.user.name将文件上传到APIstate.user.avatar更新)我从不将File对象存储在商店中,它只存储在操作中。
是否有更好的方法,还是这是一个非序列化操作有效的用例?
发布于 2020-01-28 08:09:16
该文件在理论上是可序列化的(例如,base64),但它可能会使使用devtools更加困难,或者对这么多数据造成其他意想不到的副作用。
我同意,不将实际的文件内容存储在操作负载中是有效的。
您可以保存文件的散列(或简单地保存名称和时间戳),并将其用作在另一种存储类型中访问文件的密钥(如果有必要的话)。这将使时间旅行再次工作,但只有在可以访问文件内容的相同环境中重放这些操作。
https://stackoverflow.com/questions/59944219
复制相似问题