Je m'excuse pour mon manque de connaissances. Je veux importer une valeur const dans un fichier. J'ai deux fichiers Home.js et styles.js dans le même répertoire.
Home.js
import React from 'react';
import styles from './styles';
const Home = (props) => {
const HEADER_MAX_HEIGHT = 200;
}
export { HEADER_MAX_HEIGHT };
export default Home;
Et dans styles.js
import { StyleSheet } from 'react-native'
import { HEADER_MAX_HEIGHT } from './Home';
export default StyleSheet.create({
header: {
height: HEADER_MAX_HEIGHT
}
});
mais je reçois cette erreur
Impossible de trouver la variable: HEADER_MAX_HEIGHT
comment puis-je accéder à cette variable dans styles.js?
Essayer:
Home.js
import React from 'react';
import styles from './styles';
export const HEADER_MAX_HEIGHT = 200;
const Home = props => <h1>Home</h1>;
export default Home;
styles.js
import { StyleSheet } from 'react-native';
import { HEADER_MAX_HEIGHT } from './Home';
export default StyleSheet.create({
header: {
height: HEADER_MAX_HEIGHT,
},
});
Votre HEADER_MAX_HEIGHT
doit se trouver dans le Home.js
mais en dehors du composant Home
. Vous pouvez en lire plus ici: Portée Javascript
Vous devriez probablement structurer votre code d'une manière complètement différente.
Une bonne règle consiste à conserver toutes les constantes dans un fichier séparé, loin de toutes les vues.
Essayez de créer un fichier pour toutes les constantes d'application. Constants.js
est un bon choix.
Ensuite, mettez des constantes comme ceci:
const Constants = {
HEADER_MAX_HEIGHT: 200,
OTHER_THINGS: 'whatever'
}
export default Constants
Ensuite, vous pouvez importer vos constantes où vous en avez besoin.
import Constants from '../Folder/Constants'
et utiliser comme tel
const x = Constants.HEADER_MAX_HEIGHT
C'est juste une règle de portée de fonction!
// 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
Vous n'avez pas accès à HEADER_MAX_HEIGHT dans la portée externe. Ainsi, lorsque vous essayez de l'exporter, cela renvoie simplement une erreur.
Essayez avec ceci:
import React from 'react';
import styles from './styles';
const HEADER_MAX_HEIGHT = 200;
const Home = (props) => {
// ...
}
export { HEADER_MAX_HEIGHT };
export default Home;
Maintenant dans styles.js:
import { HEADER_MAX_HEIGHT } from './Home';