在API上反应Mobx更新

时间:2018-07-24 22:53:21

标签: reactjs mobx mobx-react react-rails

mobx:5.03 反应:16.4.1 mobx反应:5.2.3 导轨:5.0.2 反应轨道宝石

我在react中有一个基本的mobx设置。我正在尝试获取rowData可观察变量以在http请求后在视图中进行更改。但是,一旦将其渲染为默认的“ 111”,它始终保持该值。如何获得mobx更新组件渲染?

import React from "react"
import axios from 'axios'

import { decorate, observable, computed, action } from "mobx"
import { observer } from "mobx-react"

class Device extends React.Component {
        rowData = 111 //view always stays at this value

        componentDidMount() {
            axios.get("/projects.json")
            .then(response => { this.rowData = 555 }) 
            .then(() => console.log(this.rowData)) //logs 555
        }

        render() {
            return (
                <div>
                    {this.rowData}
                </div> 
            );
        }

}

decorate(Device, {
    rowData: observable
})

export default observer(Device);

1 个答案:

答案 0 :(得分:1)

尝试用这个做一个构造函数:

constructor(props){
  super(props);
  makeObservable(this, {
    rowData: observable
  });
}

不确定这些功能是否在 5 中可用。可能需要升级 Mobx。