Uygulamamın nasıl yapılandırılacağını anlamaya çalışıyorum, örneğin, bir model Kullanıcı, tüm kullanıcıları yüklemeyi sürdürmek için genel bir UserStore ve FriendList, PendingFriendList gibi bazı UI ilişkili mağazalar var. vb gibi BlockedUserList, LikedUserList:Mobx
class User {
id;
@observable name;
@observable avatar;
// others functions and fields
}
class UserStore {
@observable users = [];
function resolve(id) { /*return by id*/}
function createOrUpdateUser(json) { /* add user to this.users */ }
}
class FriendStore {
@observable users = [];
hasNextPage = true;
currentPage = null;
function loadNextPage(page) {
api.loadFriends(page >= 0 ? page : this.currentPage + 1).then(users => {
users.forEach(user => {
this.users.push(UserStore.createOrUpdateUser(user))
})
})
}
}
class PendingFriendUsers {
@observable users = [];
@observable query = null;
hasNextPage = true;
currentPage = null;
function loadNextPage(page) {
// more or less like FriendStore
}
}
class BlockedUserStore {
// more or less like FriendStore
}
sorum şu: ölüm yolu bu mu? Yoksa daha iyi bir yolu var mı?
Yasal Uyarı: Depodaki yazarı değilim https://github.com/rwieruch/react-mobx -soundcloud, ama belki de gerçek bir dünya uygulaması için en az boilerplate klasör yapısı bir uygulamanın nasıl yapılandırılabileceğini biraz daha fazla bilgi verir. –
Daha büyük bir gerçek dünya MobX App: https: // github.com/rwieruch/favesound-mobx –