我正在尝试通过load()
在afterCreate()
我的UserModel
. 如果我Authenticated
检测到.Login
accessToken
UserStore
但是页面在afterCreate()
加载函数运行之前呈现。最终总是将我带到登录页面。
我主要关注的是 egghead.io 的这个视频教程,但我不确定为什么它在我的情况下不起作用。
我真的被困住了,任何建议都值得赞赏!
我经过商店的方式是在商店中使用Provider
我的App.js
.
用户模型.js
const User = types
.model("User", {
accessToken: types.string
})
.actions(self => ({
afterCreate() {
self.load();
},
load: flow(function*() {
const localData = yield LocalDB.get("user");
applySnapshot(self, localData);
})
}));
该对象LocalDB
只是一个包装器,AsyncStorage
用于帮助将数据解析为 json 格式。
LocalDB.js
const LocalDB = {
get: async function(key) {
try {
let value = await AsyncStorage.getItem(key);
try {
return JSON.parse(value);
} catch (err) {
return value;
}
} catch (err) {
console.error(err);
return false;
}
应用程序.js
let store = UserStore.create({...})
export default class App extends Component {
render() {
return (
<Provider store={store}>
<Router />
</Provider>
);
}
}