import "./styles.css";
import { useEffect, useState } from "react";
export default function App() {
interface filter {
company: boolean;
gender: boolean;
}
const [people, setPeople] = useState<filter>({
company: false,
gender: false,
});
useEffect(() => {
console.log(people);
}, [people]);
const toggleMenu = (menuItem: keyof typeof people) => {
setPeople({ ...people, menuItem: !people[menuItem] });
};
return (
<div className="App">
<button
className="flex flex-row justify-center w-full"
onClick={() => toggleMenu("company")}
>
Click me
</button>
</div>
);
}
toggleMenu
的功能似乎不能正常工作.这个 idea 是传递一个任意的键(例如"company")并让它切换值.相反,我得到了以下输出:
{company: false, gender: false, menuItem: true}
我想要:
{company: true, gender: false}
我try 了上面的代码,但没有想到看到一个新的键创建在我的 map .只需要更新现有的密钥.