Uncaught TypeError: _models_Search__WEBPACK_IMPORTED_MODULE_0 ___ default.a не является конструктором - PullRequest
0 голосов
/ 28 октября 2019

Я следую учебному пособию по Javascript - в настоящее время я создаю приложение, которое включает в себя использование классов. Я обнаружил ошибку, которая является заголовком этого вопроса: «Uncaught TypeError: _models_Search__WEBPACK_IMPORTED_MODULE_0 ___ default.a не является конструктором», этот проект включает использование MVC-дизайнашаблон также.

Я попытался переименовать импорт Поиск из './models/Search';импортировать {Search} из './models/Search';но все же меня приветствует это полное сообщение об ошибке:

Uncaught TypeError: _models_Search__WEBPACK_IMPORTED_MODULE_0___default.a is not a constructor
    at eval (index.js:5)
    at Module../src/js/index.js (bundle.js:4198)
    at __webpack_require__ (bundle.js:20)
    at eval (webpack:///multi_(:8080/webpack)-dev-server/client?:3:18)
    at Object.0 (bundle.js:4220)
    at __webpack_require__ (bundle.js:20)
    at bundle.js:84
    at bundle.js:87

Search.js file

      import axios from 'axios';

      export default class Search {
      constructor(query) {
        this.query = query;
      }

      async getResults() {
        const proxy = 'https://cors-anywhere.herokuapp.com/'; const 
      key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx';
        try {
            const res = await 
      axios(`${proxy}https://www.food2fork.com/api/search? 
      key=${key}&q=${this.query}`);
            this.result = res.data.recipes;
            console.log(recipes);
         } catch (error) {
            alert(error);
         }

      }
       }

index.js file

      import Search from './models/Search';

      const search = new Search('pizza');
      console.log(search);

ожидаемый результатэто для свойства поиска, которое будет возвращено в клиенте, и для меня, чтобы я мог получить доступ ко всем его свойствам в браузере. и да, я намеренно вычеркнул ключ API на всякий случай, если вам интересно - на самом деле тоже помогло бы, если ответ дан, вы можете дать мне краткое описание того, где я ошибся. Заранее спасибо.

1 Ответ

0 голосов
/ 28 октября 2019

Для корректного импорта вашего класса поиска используйте следующие пары строк. В index.js:

import Search from './models/Search';

А в объявлении класса поиска:

export default class Search

Или второй способ , который вы пробовали (с фигурными скобками в импорте): в индексе.js

import { Search } from './models/Search';

И экспорт без по умолчанию :

export class Search

фигурные скобки нужны только в именованном экспорте

...