如何使用没有类的mobx观察者做出反应

时间:2017-08-13 17:15:00

标签: reactjs react-native mobx mobx-react

我在我的反应原生项目中使用axiosmobx。挂载中的一个组件(Home)从一个不同的文件中调用方法(getBirds()),其中所有API方法都是有组织的。

store.js:

class BirdStore {
    @observable birdList = [];

    @action setBirdList = (birds) => {
        this.birdList = birds;
    };
}

Home.js:

@observer @inject("BirdStore")
export default class Home extends React.Component {    
    componentDidMount() {
        api.getBirds()
        ...
    }
}

api.js:

@inject('BirdStore') @observer
const api = {    
    getBirds() {
        const url = website + '/api/birds/';
        return axios.get(url)
            .then((response) => {
                this.props.BirdStore.setBirdList(response.data)
            })
            .catch((error) => {
                console.log(error);
            })
    },
};

但这给了我一个错误:

  

必须将前装饰器附加到类声明

我可以将getBirds()返回的服务器中的数据用于Home组件,然后调用setBirdList()操作,但我想分别保留与api相关的内容。有没有使用mobx没有类,以便我可以处理除类组件本身以外的所有api相关的东西?

1 个答案:

答案 0 :(得分:0)

这个错误非常神秘。他们说"必须附加在......"鉴于此,我会说,是的。您需要将装饰器附加到类。更重要的是,您无法访问this.props