javascript - React/Jasvascript:地图函数中的动态类名设置
问题描述
我有一个显示用户仪表板导航的功能。此功能应将活动功能设置为此 elem waht 点击默认为 1 个起始元素/链接。但我得到无限循环。
const UserLinks = [
{
name: "User Details",
linkTo: "/dashboard",
},
{
name: "Change Password",
linkTo: "/dashboard/changePassword",
},
];
const DasboardLinks = () => {
const [active, setActive] = useState(1);
return (
<SectionNavigation>
<ul>
{ UserLinks.map((link, i) => (
<li key={i} className={active === i ? "active" : ""}
onClick={setActive(i)}>
<Link to={link.linkTo}>{link.name}</Link>
</li>
))}
</ul>
</SectionNavigation>
);
};
当它被执行时,我得到了太多的重新渲染。React 限制了渲染的数量以防止无限循环。如何修复它以使其正常工作。
解决方案
您正在调用 setActive 而不是传递函数:
onClick={() => setActive(i)}>
推荐阅读
- docker - 如何获取用于运行 docker 容器的命令行?
- java - Java - 替换文件中的特定行而不将所有数据复制到另一个文件
- marklogic - 使用运算符对 MarkLogic 文档进行高级过滤
- java - 使用 neo4j OGM 按属性名称查找节点
- nginx - “ngx_http_subrequest”是否污染了响应?
- java - 如何确定 ConstraintViolation 是来自 JSON 属性还是来自 URL 参数?
- javascript - jquery没有在span上找到类?
- ansible - Ansible 2.5 中的条件“when: var | d()”是什么意思
- xamarin - WatchKit 应用程序无法编译:“错误:WatchKit 扩展不包含任何 WatchKit 应用程序”仅在 2 台机器中的 1 台上
- python - 每个目标变量的特征重要性和选择