Импорт модуля в приложении React Native

Я новичок в модульной системе ES6, так что это может звучать глупо.

В приложении React Native Starter, которое использует NativeBase, кто-нибудь может объяснить, как native-starter-kit/js/components/home/index.js сможет сделать

import myTheme from '../../themes/base-theme`;

когда файл импортируется из, native-starter-kit/js/themes/base-theme.js не было никакого кода, который export default переменная myTheme?

2 ответа

Второй файл, на который вы ссылаетесь - это экспорт по умолчанию. В строке 5:

export default {

// Badge
badgeBg: '#ED1727',
badgeColor: '#fff',

...

}

Поэтому, когда они делают import myTheme from '../../themes/base-theme; myTheme это имя переменной, которое они выбрали для импортированного модуля. В этом случае транспортер будет искать default экспорт.

Если бы они сделали import { myTheme } from '../../themes/base-theme; тогда возникла бы проблема, поскольку она не указана явно при экспорте. Делать это не относится к default экспорт, а тот, который явно называется myTheme

Я не уверен, что имел смысл, вы можете прочитать https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Instructions/import

Экспорт без значения по умолчанию означает, что это именованный экспорт.

Вы можете иметь несколько именованных экспортов в одном файле.

Пример 1: export class Theme {}

Здесь вы должны импортировать этот экспорт, используя его точное имя.

Чтобы использовать этот компонент в другом файле, вы должны сделать это, import { Theme } from '../../themes/base-theme'

Пример 2:

Если вы экспортируете как экспорт по умолчанию, export default class Theme {}

Затем в другом файле вы импортируете экспорт по умолчанию без использования { }, например, import Theme from '../../themes/base-theme'

Для каждого файла может быть только один экспорт по умолчанию.

Хотя соглашение React об экспорте одного компонента из файла и об экспорте - это экспорт по умолчанию.

Вы можете переименовать экспорт по умолчанию при его импорте. import myTheme from '../../themes/base-theme'

Другие вопросы по тегам