假设您正在编写一个基于web的文字处理应用程序,因为您不想处理读取和编写一堆不同的文档格式,所以您使用第三方库来处理该部分。
当您阅读文档时,库会返回一个类实例,您可以修改该类实例,然后将其传递回库以再次保存文档。您必须将原始实例传递回库,因此在应用程序编辑文档时需要保留它。
显然,您不能将其与React Redux一起使用,因为一旦您尝试将该类实例保存到状态,它就会抱怨它是不可序列化的。很公平,但你应该如何抓住这个类实例?
该文档包含一个标题为"使用不可序列化的数据"的部分,不幸的是,该部分实际上并没有告诉您如何使用不可串行化的数据,只是告诉您不应该这样做。但在上面的示例中,这是不可避免的,所以肯定有一些方法可以做到这一点,而不必禁用所有警告并抱着最好的希望?
你是不是应该把这样的东西存储在一个全局变量/单例中,然后把标志放在Redux存储中,比如";documentOpen:true"当您再次需要实例时,只需引用回全局对象?这似乎不是一个很好的方法,但我找不到任何其他方法来解决这个问题(除了禁用警告(。
是的,根据文档,这种类实例不属于存储状态,因为a(它实际上不是"状态";,以及B(当与DevTools一起使用时,它将不能正确地串行化。
对我来说,这种类实例要么严格属于UI层,要么属于某种中间件,但这实际上取决于该实例的功能以及您需要如何与它交互