【发布时间】:2021-06-08 21:10:47
【问题描述】:
问题 - 当我单击一个按钮显示答案文本时,另一个按钮也会打开。我只想在我点击每个问题时打开它的答案。
import React, { useState } from "react"
const Questions = [
{
question: "What is your favourite colour?",
answer: "My favourite colour is pink",
},
{
question: "What is your favourite animal?",
answer: "My favourite animal is a monkey",
},
]
const FAQs = () => {
const [isOpen, setIsOpen] = useState(false)
const toggle = () => setIsOpen(!isOpen)
return (
<div>
{Questions.map((element, i, array) => {
return (
<div>
<button onClick={toggle} key={i}>
{element.question}
</button>
{isOpen && <p key={i}>{element.answer}</p>}
</div>
)
})}
</div>
)
}
export default FAQs
【问题讨论】:
-
发生这种情况是因为您正在映射您的问题,并为每个问题创建一个按钮。您传递的 onClick 函数对于每个函数都是相同的。本质上,这两个按钮的行为都符合您的代码预期,当单击任一按钮时,isOpen 的值为 true。
标签: javascript reactjs iterator react-hooks