【发布时间】:2020-10-10 12:31:34
【问题描述】:
就像上面的屏幕截图一样,我正在使用 Semantic-UI,其中选定的菜单会突出显示。 正如我下面的代码,我已将状态设置为用户单击的任何菜单。我下面的代码工作正常,但我认为这是编写代码的低效方式,因为我基本上每次渲染时都调用两个函数只是为了更改类名的切换。
有没有更好的方法来实现这一点?
请指教。
const Navigation = () => {
const [selected, setSelected] = useState("Comments");
const onSelection = (e) => {
setSelected(e.target.textContent);
};
const commentActive = () => {
return selected === "Comments" ? "active" : "";
};
const searchActive = () => {
return selected === "Search" ? "active" : "";
};
return (
<div className="ui secondary pointing menu">
<a className={`item ${commentActive()}`} onClick={(e) => onSelection(e)}>
Comments
</a>
<a className={`item ${searchActive()}`} onClick={(e) => onSelection(e)}>
Search
</a>
</div>
);
};
【问题讨论】:
标签: javascript reactjs dom react-hooks state