我正在尝试通过对象“contentMap”(在数组“faqArray”中)进行映射,并访问对象“policy1”,“policy2”等内的“问题”和“回答”。
以下是我的示例json数据。
"faqArray": [{
"contentMap": {
"policy1": {
"answer": "Cookies are small text files.",
"question": "<strong>What are Cookies?</strong>"
},
"policy2": {
"answer": "Please call the number.",
"question": "<strong>How do I contact by phone?</strong>"
},
"policy3": {
"answer": "bla bla",
"question": "<strong>What is bla?</strong>"
},
},
"header": ""
},
]
下面是试图访问问题和答案的反应组件级代码。
{faqArray.map((faqInfoGroup, i) => [
<div key={i}>
<div className="faqQuestionGroup" dangerouslySetInnerHTML={this.createMarkup(faqInfoGroup.header)}></div>
{Object.keys(faqInfoGroup).map((qaMap, i) =>
<div className="faqQuestions" key={i}>
Q. <a className="faqLinks" href={`#default_${qaMap.question}`} dangerouslySetInnerHTML={this.createMarkup(qaMap.question)}>
</a>
</div>
)}
</div>
])}
使用上面的代码,我可以使用.map映射“faqArray”。我还可以使用Object.keys(faqInfoGroup).map映射对象“contentMap”。 但我真正的问题是在policy1,policy2和policy3中访问问题和答案。 Object.keys(faqInfoGroup).map给我“policy1”,“policy2”等作为字符串而不是对象。因此,policy1.answer,policy.question不起作用。
我也尝试了javascript forEach(),但仍然无法访问问题和答案。
如何访问“policy1”,policy2“和policy3”中的“问题”和“回答”?
请告诉我你的建议。这将是一个很大的帮助。
答案 0 :(得分:2)
您应该能够faqInfoGroup.contentMap[qaMap].question
(在@ abhi评论之后)
{faqArray.map((faqInfoGroup, i) => [
{Object.keys(faqInfoGroup).map((qaMap, i) => {
//faqInfoGroup.contentMap[qaMap].question
//faqInfoGroup.contentMap[qaMap].answer
})}
])}