2016-07-27 3 views
3

Я пытаюсь импортировать одну функцию из файла функций. Файл функций выглядит так.Импортировать свойства объекта

const Functions = { 
    url(path = '') { 
     path = path.replace(/^\/+/, ''); 
     return `${document.baseURI}/${path}`; 
    }, 

    asset(path = '') { 
     return this.url(path); 
    } 
}; 

export default Functions; 

я пытаюсь импортировать функцию url как это.

import {url} from "../Utils/Functions"; 

Когда я это делаю, я получаю следующую ошибку в браузере от браузера.

Uncaught TypeError: (0 , _Functions.url) is not a function

Согласно MDN документации, этот импорт должен работать как url находится в Functions объекта.

Что я делаю неправильно?

+0

'import url from" ../ Utils/Functions ";' будет работать для вас –

ответ

3

Что вы сделали - это экспортирует объект.

В этом случае вам необходимо импортировать объект и получить доступ к его собственности:

import Functions from "../Utils/Functions"; 
Functions.url(); 

Если вы хотите сделать с именем экспорта - вы должны изменить способ вы экспортирующие и определяющий его:

function url(path = '') { 
    path = path.replace(/^\/+/, ''); 
    return `${document.baseURI}/${path}`; 
} 

function asset(path = '') { 
    return this.url(path); 
} 

export { url, asset }; 

или

export function url(path = '') { 
    path = path.replace(/^\/+/, ''); 
    return `${document.baseURI}/${path}`; 
} 

export function asset(path = '') { 
    return this.url(path); 
} 

В другой ноте: это не уничтожение того, даже если она выглядит simil ар. Стандарт называет его как ImportsList и определяет его собственную семантику, отличную от деструктивной.

Ссылки:

+1

Я неправильно предположил, что деструктурирование может быть использовано на импортированный объект. – Enijar

+2

@ Enijar вещь такова: она не разрушает, хотя выглядит немного похожей. – zerkms

0

Если вы используете 'экспорта по умолчанию', то импорт должен быть:

import Functions from "../Utils/Functions"; 

Фактически вы можете импортировать его с любым желаемым идентификатором (не только «Функции»)

Смежные вопросы