根据这篇文章Mixins Are Dead. Long Live Composition,我设置了一个Pet组件,用于监听宠物和所有者商店用户的更高订单组件。但是如何将来自宠物资源的owner_id传递给connectToStores
?这只是mixins优越的情况吗?
Pet = connectToStores(Pet, [PetStore, OwnerStore], (props) => {
return {
pet : PetStore.getOne(props.id),
owner : OwnerStore.getOne(ownerId), // this should come from pet.owner_id
};
});
答案 0 :(得分:1)
PetStore.getOne
是否同步?只需将结果分配给变量。
Pet = connectToStores(Pet, [PetStore, OwnerStore], (props) => {
var pet = PetStore.getOne(props.id);
return {
pet : pet,
owner : OwnerStore.getOne(pet.owner_id),
};
});
如果不同步,您的商店将需要发出更改事件,以便在宠物可用时重新呈现组件。该组件还将以某种方式处理宠物不可用。
Pet = connectToStores(Pet, [PetStore, OwnerStore], (props) => {
var pet, loaded, owner;
pet = PetStore.getOne(props.id);
if (pet) {
loaded = true;
owner = OwnerStore.getOne(pet.owner_id);
} else {
loaded = false;
owner = null;
}
return {
pet : pet,
owner : owner,
loaded : loaded
};
});