我正在关注github上的项目并进行个人修改
可能会用谷歌/文档来回答,但我还不知道正确的关键词。有一天,很快。
这与我见过的文件命名约定不符。
Heroes.js imports api.js. api.js
通过/ api / *路由的代理设置与快递后端进行通信。问题是api.js文件从不声明“api”组件。
api.js是如何导出“heroService”的,但是当它被导入时,它在“api”下运行?是因为该文件名为api.js而且默认为那作为组件名称?
Heroes.js
import api from '../api';
//Example function
handleDelete(event, hero) {
event.stopPropagation();
api.destroy(hero).then(() => {
let heroes = this.state.heroes;
heroes = heroes.filter(h => h !== hero);
this.setState({ heroes: heroes });
if (this.selectedHero === hero) {
this.setState({ selectedHero: null });
}
});
}
api.js
const baseAPI = '/api';
const heroService = {
//example function
destroy(hero) {
return new Promise((resolve, reject) => {
fetch(`${baseAPI}/hero/${hero.id}`, { method: 'DELETE' })
.then(response => response.json())
.then(json => resolve(json))
.catch(err => {
reject(err);
});
});
}
export default heroService;
答案 0 :(得分:0)
api.js
正在导出default
。
由于这不是 命名导出,因此绑定采用您在import
上指定的名称。
在您撰写import api from '../api';
时,您使用api.destroy()
。
如果您撰写import monkeys from '../api';
,则会改为使用monkeys.destroy()
。
参考文献: