正确获取ReactJS组件和MobX的数据

时间:2017-08-15 09:27:32

标签: reactjs mobx

MobX中数据获取(和发布)的首选方式是什么?包括在onLoad外部数据调用期间制作微调器的选项。

  1. 所有在商店中使用@actions,使组件尽可能愚蠢,例如旨在尽可能多的无状态功能组件。
  2. 在组件中,例如使用ComponentDidMount或WillMount
  3. 使用高阶组件

1 个答案:

答案 0 :(得分:1)

根据mobx documentation,应该在mobx操作中执行操作,因此在商店中按照您描述的第一个选项的建议。

他们提供的示例完全符合您的用例:

@action    createRandomContact() {
    this.pendingRequestCount++;
    superagent
        .get('https://randomuser.me/api/')
        .set('Accept', 'application/json')
        .end(action("createRandomContact-callback", (error, results) => {
            // ^ Note: asynchronous callbacks are separate actions!
            if (error)
                console.error(error);
            else {
                const data = JSON.parse(results.text).results[0];
                const contact = new Contact(this, data.dob, data.name, data.login.username, data.picture)
                contact.addTag('random-user');
                this.contacts.push(contact);
                this.pendingRequestCount--;
            }
        }));
}