教程帮助:导入名称与组件名称不对齐,仍然有效

时间:2017-11-25 22:11:21

标签: node.js reactjs

我正在关注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;

1 个答案:

答案 0 :(得分:0)

api.js正在导出default

由于这不是 命名导出,因此绑定采用您在import上指定的名称。

在您撰写import api from '../api';时,您使用api.destroy()

如果您撰写import monkeys from '../api';,则会改为使用monkeys.destroy()

参考文献: