J'ai un fichier de configuration que je voudrais importer et faire défiler/boucler dans l'un de mes composants. Le fichier de configuration:La variable d'accès ReactJS hors de portée dans la fonction de rendu
data.config.js
export const data = {
clientData: {
name:'Lynda',
age:'53',
userid:7896
},
otherData: [
{
option1: 'good;',
option2: {type: 'confirmed'},
option3: ['u','g','l','y']
},
{
option1: 'awesome;',
option2: {type: 'temporary'},
option3: ['u','g']
},
],
};
component.js déposent
import { data } from '../config/client/data.config.js';
..
var clientData = data.clientData; // console o/p returns object key and values
var otherData = data.otherData; // console o/p returns object key and values
..
render() {
const {
title,
favicon,
socialMediaDesc,
socialMediaImg,
...
} = this.props;
...
return(
<html className="no-js" lang="en">
<title>{title}</title> // works as expectec
...
<script dangerouslySetInnerHTML={{ // eslint-disable-line react/no-danger
__html: `
for (var client in ${clientData}) {
if (${clientData}.hasOwnProperty(client)) {
(function(key, value) {
console.log(key, " : ", value);
})(client, ${clientData}[client]);
}
};
`,
}}
</html>
)
}
console prévue o/p:
name : Lynda
age : 53
userid : 7896
Résultat que je reçois: Uncaught SyntaxError: Unexpected identifier as value of ${clientData} is [object Object]
Comment puis-je accéder à la clé client et aux autres clés et valeurs de la fonction de rendu?
'importation {données} de » ../ config/client/data.config.js', '' qu'est-ce un console.log() 'dire dans le constructeur? – Nocebo
Je vais mettre à jour le message original – user988544
Je crois que ces const sont déclarées dans la mauvaise ligne. Le devrait être avant le retour. vous pouvez essayer de créer la chaîne qui va aller dans dangerouslySetInnerHTML prop avant le rendu et utiliser cette chaîne comme une seule variable. – bennygenel