我在我的反应原生项目中使用axios
和mobx
。挂载中的一个组件(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相关的东西?
答案 0 :(得分:0)
这个错误非常神秘。他们说"必须附加在......"鉴于此,我会说,是的。您需要将装饰器附加到类。更重要的是,您无法访问this.props
。