我有2家商店,如下面
存储1
export default class ContactInformationModel {
@observable id;
@observable type;
@observable description;
@observable mode;
constructor(id,type,description,mode,show) {
this.id=id;
this.type=type;
this.description=description;
this.mode=mode;
}
}
export default class ContactInformationController {
@observable contact_informations = [];
addContactInformation(data){
var id= data.hasOwnProperty("id") ? data.id: this.getInsertedId(data.mode); //auto increment for store mvc;
var type=data.type;
var description=data.description;
var mode=data.mode;
this.contact_informations.push(new ContactInformationModel(id,type,description,mode));
}
@computed get SellerContact(){
return this.contact_informations.filter(c => c.mode == 'seller');
}
}
存储2
import ContactInformationController from './ContactInformationController';
var contact_information_store=new ContactInformationController();
export default class SellerController {
@observable seller = {}; //only one entry
saveSellerContact(){
//pull contact_information_store
var contact_information=contact_information_store.SellerContact;
}
}
当我打印contact_information时,它是空白数组,但它在jsx中呈现。我仍然是反应/ mobx的新手,任何帮助将不胜感激。感谢
答案 0 :(得分:2)
我认为问题在于你有两个不同的ContactInformationController
类实例。如果您导出ContactInformationController
的实例,则会解决此问题,因此您在整个应用中使用相同的实例。
class ContactInformationModel {
@observable id;
@observable type;
@observable description;
@observable mode;
constructor(id, type, description, mode, show) {
this.id=id;
this.type=type;
this.description=description;
this.mode=mode;
}
}
class ContactInformationController {
@observable contact_informations = [];
addContactInformation(data){
var id= data.hasOwnProperty("id") ? data.id: this.getInsertedId(data.mode); //auto increment for store mvc;
var type=data.type;
var description=data.description;
var mode=data.mode;
this.contact_informations.push(new ContactInformationModel(id,type,description,mode));
}
@computed get SellerContact(){
return this.contact_informations.filter(c => c.mode == 'seller');
}
}
export { ContactInformationModel };
export default new ContactInformationController();