es6: как импортировать const после экспорта?

Я извиняюсь за отсутствие знаний. Я хочу импортировать значение const внутри файла. У меня дома два файла.JS и стили.JS в том же каталоге.

дома.js

import React from 'react';
import styles from './styles';

const Home = (props) => {

    const HEADER_MAX_HEIGHT = 200;

}

export { HEADER_MAX_HEIGHT };
export default Home;

и в стилях.js

import { StyleSheet } from 'react-native'
import { HEADER_MAX_HEIGHT } from './Home';

export default StyleSheet.create({
    header: {
        height: HEADER_MAX_HEIGHT
    }
});

, но я получаю эту ошибку

не удается найти переменную: HEADER_MAX_HEIGHT

Как я могу получить доступ к этой переменной в стилях.Яш?

3 ответов


попробуй:

дома.js

import React from 'react';
import styles from './styles';

export const HEADER_MAX_HEIGHT = 200;

const Home = props => <h1>Home</h1>;

export default Home;

стили.js

import { StyleSheet } from 'react-native';
import { HEADER_MAX_HEIGHT } from './Home';

export default StyleSheet.create({
  header: {
    height: HEADER_MAX_HEIGHT,
  },
});

код HEADER_MAX_HEIGHT должно быть в пределах Home.js файл, но вне


вы, вероятно, должны структурировать свой код совершенно по-другому.

хорошим правилом является сохранение всех констант в отдельном файле, вдали от всех представлений.

попробуйте создать файл для всех констант приложения. Constants.js - хороший выбор.

затем поместите константы вот так:

const Constants = {
  HEADER_MAX_HEIGHT: 200,
  OTHER_THINGS: 'whatever'
}
export default Constants

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

import Constants from '../Folder/Constants'

и как такой

const x = Constants.HEADER_MAX_HEIGHT

Это просто правило определения области действия функции!

// Outer scope
const Home = (props) => {
    // Inner scope
    const HEADER_MAX_HEIGHT = 200;

}

console.log(HEADER_MAX_HEIGHT); // Uncaught ReferenceError: HEADER_MAX_HEIGHT is not defined

у вас нет доступа к HEADER_MAX_HEIGHT во внешней области. Поэтому, когда вы пытаетесь экспортировать его, он просто возвращает ошибку.

попробуйте с помощью этого:

import React from 'react';
import styles from './styles';

const HEADER_MAX_HEIGHT = 200;

const Home = (props) => {     
    // ...
}

export { HEADER_MAX_HEIGHT };
export default Home;  

Теперь в стилях.js:

import { HEADER_MAX_HEIGHT } from './Home';