我正在使用对通量架构做出反应,但我遇到了一个问题。
我需要创建一个获取用户 ID 并获取用户的操作。这是代码:
var createAction = require('common/scripts/actions-helpers/create-action'),
resource = require('common/scripts/resources/conversation');
module.exports = createAction(fetchAction);
function fetchAction(context, payload, success, failure) {
resource.sync(context, payload.userId)
.then(function(user) {
context.dispatch('USER_FETCH', user);
success();
}, failure);
}
我想使用一个将缓存所有用户的存储,因此如果用户之前获取,该操作将不会执行后端调用。新操作应如下所示:
function getFetchedUser() {
// <--------- HOW TO KNOW WHETHER USER FETCHED?
}
function fetchAction(context, payload, success, failure) {
var user = getFetchedUser();
if (user) {
context.dispatch('USER_FETCH', user);
success();
} else {
resource.sync(context, payload.userId)
.then(function(user) {
context.dispatch('USER_FETCH', user);
success();
}, failure);
}
}
问题是我不想在操作中管理用户数据,所以我想到实现 getFetchedUser() 的唯一方法是检查用户存储。
这是一个好方法吗?
可以操作访问存储吗?