我有一个具有以下userData
默认值的 AuthStore:
@observable userData = {
username: null,
firstname: null,
lastname: null,
email: null
}
该对象在登录时使用相应的字段填充,如下所示:
@observable userData = {
username: "jdoe",
firstname: "john",
lastname: "doe",
email: "johndoe@website.com" <— This field is special
}
电子邮件字段是特殊的,只有在经过身份验证的用户查看自己的个人资料时,它才应该被获取/存在。当访问另一个用户的个人资料时,除了电子邮件之外,所有其他字段都应该存在,并且是从没有电子邮件的 api 中获取的。
由于这是 2 种不同类型的用户,一个 auth 用户有他们的电子邮件,当他们访问任何其他用户时,没有电子邮件,只有所有其他相应的字段。处理这个多用户数据用例的最佳方法是什么?
除了电子邮件之外,是否应该有 2 家商店具有相同的重复字段?所以上面的电子邮件在 AuthStore 中完好无损,然后另一个 UserStore 具有相同的字段而没有电子邮件,并创建 2 个不同的反应原生 ownerProfile.js(对于 auth 用户)和 profile.js(对于其他用户)?这感觉不太对...
存储已登录的 userData 对象以在应用程序刷新时检索它(如果可用)的最佳方法是什么,因为它当前在应用程序刷新时清空配置文件的 userData 字段,并且由于我使用 AuthStore.userData.username 访问配置文件会导致错误。 toUpperCase(); 我收到一个错误,因为它试图在 null 上运行 .toUpperCase() 。
我遇到了 hydrate/toJson 但我对整个事情感到困惑,甚至不确定何时/如何实施它们,或者即使它们是我问题的解决方案。由于这个问题,我被困在我的项目上,无法继续前进。
知道如何使用 MobX 解决这个问题吗?