从另一个商店调用商店 mobx
calling store from another store mobx
我有 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 中呈现的。我仍然是 react/mobx 的新手,我们将不胜感激。谢谢
我认为问题在于您有两个不同的 ContactInformationController
class 实例。如果您改为导出 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();
我有 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 中呈现的。我仍然是 react/mobx 的新手,我们将不胜感激。谢谢
我认为问题在于您有两个不同的 ContactInformationController
class 实例。如果您改为导出 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();