我正在尝试创建一个按钮,当按下时,它会循环通过一组特定的主题。此外,在显示最后一个主题后,它将循环回到数组的开头。我创建了一个handle函数,通过更新自定义react hooks函数useThemes,它将在各种主题之间循环。然而,我的尝试没有产生任何结果。这是我的代码,谢谢你的帮助。
const { theme, setTheme } = useTheme();
const themes = [
{ name: "Normal" },
{ name: "Dark" },
{ name: "Forrest" },
{ name: "Pink" },
{ name: "Sky" },
{ name: "Strawberry" },
];
let myIndex = 1;
const handleColorChange = (e: any) => {
setTheme(e.themes.name[myIndex].toLowerCase());
myIndex = (myIndex + 1) % themes.length;
};
<button onClick={handleColorChange}>
</button>
字符串
2条答案
按热度按时间xriantvc1#
问题是在handlerColorChange方法中,你试图获取一个在
e
变量中不存在的属性,我认为你是想从themes数组中获取它。试试这个:
字符串
eh57zj3b2#
只需将主题索引存储在状态中。组件中的局部变量不会跨呈现器持久化。
举例来说:
字符串