我已经制作了一个API,其中包含我能够获取的测验问题,现在我尝试呈现“questions”数组中的单个属性(“clue1”)。
这是我的代码:
export const SingleClue = () => {
const [questions, setQuestions] = useState({})
const fetchData = () => {
fetch('https://final-project-api-veooltntuq-lz.a.run.app/questions')
.then((response) => {
return response.json()
})
.then((data) => {
setQuestions(data)
})
}
useEffect(() => {
fetchData()
}, [])
return (
<div>
<div>
{questions.map((question) => (
<div key={id}>
{question.questions.map((clue) => (
<div key={id}>
<h2>{clue.clue1}</h2>
</div>
))}
</div>
))}
</div>
</div>
)
}
我尝试了不同类型的Map,但似乎没有什么工作。我错过了什么?
3条答案
按热度按时间5cg8jx4n1#
vvppvyoh2#
您可以直接访问该属性,如下所示:
或者,如果您想要呈现“questions”数组中的多个属性,您可以使用map函数来遍历数组并呈现每个元素。
这将呈现“questions”数组中每个元素的“clue1”和“clue2”属性。
kgsdhlau3#
您的API不会返回嵌套数组,而是返回一个对象,其中包含一个位于关键字“questions”处的对象数组:
如果您使用fetch,则需要将json响应传递给state,如下所示:
};
......但我会使用axios和一个异步函数,如下所示:
型
};
这将为两个问题提供线索1: