我正在尝试清理一些代码以消除冗余,并对最佳实践有一些疑问。
为了简单起见,假设我有 3 个 mobx 商店 、 和 。PeopleStorePlacesStoreAuthStore
所有这些商店都使用 连接到第三方 API。fetch
提供登录功能,并具有以下属性:AuthStore@observable apiToken
其他商店中存在重复的逻辑,设置 api url、令牌等...
我尝试创建以下文件:
// ./api.js
const url = 'https://example.com'
const options = {
headers: {
Authorization: ??? (how do I access AuthStore.apiToken)
}
}
export const api = (endpoint) => {
fetch(url + endpoint, options)
}
然后在PeopleStore
import api from './api'
class PeopleStore {
getPeople() {
api('/people');
}
}
(这只是概念的一个示例,而不是实际的代码)
我的问题是:
这是一个好方法,还是有更好的方法可以做到这一点?
如何进入内部?apiToken
api.js
我假设这只是一个函数而不是一个反应组件,这是否正确?api
如果是这样,我还能不能把?(我相信我遇到了这个问题)inject
AuthStore
api()
我的另一个想法是将所有商店包装在提供此功能的商店中,但再次(我假设)商店不是实际的 react 组件,这是否会导致任何问题?HOC
呼啦一阵风
相关分类