reactjs - 如何在地图中的特定键上显示 div 元素反应
问题描述
我有一个列表,旁边有一个按钮:
list 1 (button)
list 2 (button)
list 3 (button)
地图内部:
const [ show, setShow ] = useState(true);
const showOptions = () => {
setShow(!show);
}
return (
{list.map((a, i) = (
<div key = {i} >
{a.listAll}
<button onClick={showOptions}>Show</button>
{!show ?
<div>{a.listOfOptions}</div> : null
}
</div>
))}
)
在按钮上单击 div 元素显示如下,但它显示在所有列表下方。如何使其仅显示在特定列表中?例如,当我单击列表 3 时,它将仅显示在列表 3 下方。
解决方案
您应该更改状态以反映您希望显示列表的索引:
const [ listIndex, setListIndex ] = useState(undefined);
return (
{list.map((a, i) = (
<div key = {i} >
{a.listAll}
<button onClick={() => listIndex === i ? setListIndex(undefined) : setListIndex(i)}>Show</button>
{i === listIndex ?
<div>{a.listOfOptions}</div> : null
}
</div>
))}
)
推荐阅读
- ruby-on-rails - 是否需要重命名 environment.sample 文件才能使用环境挂钩?
- java - Java .split 方法返回空数组
- python-3.x - 导入 object_detection 库时出现非法指令
- database - 使用 Apache IoTDB 时,插入 SQL 语句的第一列是否需要时间或时间戳?
- java - JPA Hibernate:MetaModel 未在可嵌入类中正确生成
- amazon-web-services - Cognito 子身份 IAM 策略访问每个 S3 存储桶 - “条件”和“资源”之间的区别
- c - 程序没有内存错误,valgrind 测试失败 - CS50 pset5 拼写器
- javascript - 在codeigniter php中使用ajax根据第一个下拉结果填充第二个下拉
- python - 如何解决此错误:“张量”对象没有属性“numpy”
- haskell - 为什么`fx = xx`和`gx = xxxxx`具有相同的类型