【发布时间】:2017-08-28 18:55:52
【问题描述】:
我有一个配置文件,我想在其中一个组件中导入和渲染/循环。配置文件:
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 文件
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>
)
}
预期的控制台操作:
name : Lynda
age : 53
userid : 7896
我得到的结果:Uncaught SyntaxError: Unexpected identifier as value of ${clientData} is [object Object]
如何访问渲染函数中的 clientData 和 otherData 键和值?
【问题讨论】:
-
import { data} from '../config/client/data.config.js';构造函数中的console.log()是什么意思? -
我会更新原帖
-
我相信那些 const 是在错误的行中声明的。应该在返回之前。您可以尝试在再次渲染之前创建要进入危险SetInnerHTML prop 的字符串,并将该字符串用作单个变量。
-
@user988544 它现在看起来可以工作了,但是渲染函数应该返回一个字符串或一个反应组件。你要返回多个东西。我只是指出未来可能出现的问题,因为您可以看到我没有将其添加为答案。另一件事是我建议您使用 window.jQuery 对象 componentDidMount 而不是将 javascript 代码添加为 HTML 字符串,因为它不是实现的好方法
-
@user988544 返回中间的
const不可能正常工作。那是 100% 无效的语法。你应该确认你已经保存并编译了你的代码,因为我向你保证那行不通。
标签: javascript reactjs scope jsx