双子座和什么座最配| 权字五行属什么| 检查怀孕要做什么检查| 什么叫阳痿| 蛇与什么属相相克相冲| 西替利嗪是什么药| 功夫2什么时候上映| 下午茶是什么意思| 尿培养能查出什么病| EXP什么意思| 抖腿是什么原因| 籽料是什么意思| 误区是什么意思| Preparing什么意思| 不粘锅涂层是什么材料| 老是觉得口渴是什么原因引起的| 文雅是什么意思| 得道是什么意思| 哺乳期头痛可以吃什么药| 121是什么意思| 脸长的人适合什么发型| 子宫回声欠均匀是什么意思| 阿托伐他汀钙片什么时候吃最好| 乙肝第二针最晚什么时候打| 什么是法定节假日| 莲蓬乳是什么| 割伤用什么药愈合伤口| 猴子是什么动物| 什么是有源音箱| 梦见换房子是什么预兆| 看脚趾头挂什么科| 奇美拉是什么| 胃肠感冒什么症状| 嘴酸是什么原因引起| 三月27号是什么星座| 安络血又叫什么名| 常州冬至吃什么| 什么叫正盐| 什么是虫草| 梦见孩子被蛇咬是什么意思| 银耳有什么功效| 花雕酒是什么| 吊销是什么意思| 水蛭怕什么| 灰色配什么颜色| 月经后是什么期| 婴儿黄疸母亲忌口什么| 木瓜是什么季节的水果| 梦见找对象是什么意思| 什么是有氧运动| 天外有天人外有人是什么意思| 头部神经痛吃什么药好| 性欲什么意思| 吃米饭配什么菜好吃| 子宫内膜增厚是什么意思| 丙字五行属什么| 情人节送什么礼物好| 顶嘴是什么意思| 孕妇吃海带有什么好处| 2019年属什么| 为什么海水是咸的| 大便陶土色是什么颜色| 女性下小腹痛挂什么科| 炖鸭汤放什么食材最好| cl是什么单位| 连可以组什么词| 什么是粳米| 痔疮为什么会痒| 什么的树丛| 落户什么意思| 比中指是什么意思| 移植后吃什么容易着床| rh(d)血型阳性是什么意思| 胎儿畸形是什么原因造成的| 什么雨| 太妹是什么意思| 1977年五行属什么| 梦见已故老人是什么预兆| 豆汁是什么| 椰蓉是什么| 亚麻是什么| 雌激素分泌过多是什么原因引起的| 胸导联低电压什么意思| 钡餐造影能查出什么| 有骨气是什么意思| 直肠炎是什么原因引起| 天麻加什么治头晕| 蝉为什么要脱壳| 去火吃什么水果| 来源朋友验证消息是什么意思| 为什么梦不到死去的亲人| 脑供血不足吃什么中药| 淋巴结肿大挂什么科| 味粉是什么调料| 梦到妈妈怀孕什么预兆| 猥琐是什么意思| 中暑的症状是什么| 胃疼看病挂什么科| 三千烦恼丝什么意思| 什么可以美白牙齿| 女生的逼长什么样| 化疗后吃什么补身体| 斑驳是什么意思| 根尖周炎吃什么药| 七月上旬是什么时候| 口中发甜是什么原因| sds是什么意思| 次方是什么意思| 男生下体痒是什么原因| 贫血吃什么补血最快| 粉底液和bb霜有什么区别| 动态是什么意思| 不动明王是什么意思| 秋葵不能和什么一起吃| 李倩梅结局是什么| 腰疼吃什么药最有效| t1什么意思| 肋膈角锐利是什么意思| 看空是什么意思| 脖子出汗是什么原因| 什么是电子邮件地址| 古今内衣是什么档次| 什么的尾巴有什么作用| 为什么子宫会隐隐作痛| 孕妇吃榴莲对胎儿有什么好处| 室早是什么意思| 女人绝经一般在什么年龄段| 幽门螺旋杆菌阳性是什么意思| 桂花树施什么肥| 小便是红色的是什么原因男性| 孕酮低吃什么可以补| 什么叫应届毕业生| 颈椎压迫神经手麻吃什么药| 香菇炒什么菜好吃| 石榴叶子泡水喝有什么功效| 哦哦是什么意思| instagram什么意思| 胸闷气短咳嗽是什么原因引起的| 流明是什么意思| 陶渊明世称什么| 无患子为什么叫鬼见愁| 五指毛桃有什么用| 天牛是什么| 总恶心是什么病的前兆| 心肾不交有什么症状| 吴承恩是什么朝代的| 低筋面粉适合做什么| 实则是什么意思| 双抗是什么意思| 芒果不能和什么水果一起吃| 穿什么内衣好| 牙齿出血是什么病征兆| 冠状ct能查什么| 龙鱼吃什么| 胃酸过多吃什么食物好| 秋后问斩是什么意思| 大疱性皮肤病是什么病| 幽门螺旋杆菌阳性是什么意思| 调教什么意思| 常州冬至吃什么| 参谋长是什么军衔| 无间道是什么意思| 脑出血什么症状| 略施小计是什么动物| 熳是什么意思| 胃溃疡吃什么食物好| 金丝檀木是什么木头| iac是什么意思| 世界最大的岛是什么岛| 田七与三七有什么区别| 吃什么对肠道好| 经期吃什么水果比较好| 自来鸟是什么兆头| 股级干部是什么级别| 鸡男配什么属相最好| 牛蛙和青蛙有什么区别| 发烧42度是什么概念| 口炎读什么| 晕车药叫什么名字| 外交是什么意思| 一叶知秋下一句是什么| marlboro是什么烟| 过山风是什么蛇| 什么是果糖| 天蝎座和什么星座不合| 08属什么生肖| 玉米糁是什么| 奥倍健是什么药| 男人吃海参有什么好处| 洗耳恭听什么意思| 肚子一按就痛什么原因| 什么情况下会流前列腺液| 甲申日是什么意思| 小肠是干什么的| 盐是什么| 甲减是什么| 军用水壶为什么是铝的| 6月16什么星座| 杨梅什么时候成熟| 岁寒三友是什么意思| 点状钙化灶是什么意思| 浑身无力是什么原因| 梦见捡到钱是什么征兆| 天体是什么意思| 淫羊藿是什么| 身上经常痒是什么原因| 什么是树洞| 头位是什么意思| 荷花什么时候种植| 狗仗人势是什么生肖| 古代的面首是什么意思| 失聪什么意思| 花中君子是什么| 鬃狮蜥吃什么| 贪慕虚荣是什么意思| 踏雪寻梅什么意思| 纸是用什么材料做的| 女人白带多什么原因| 万寿菊什么时候开花| 谈什么色变| 腿脚发麻是什么原因| 月子里吃什么饭最好| 半夜呕吐是什么原因| 景泰蓝是什么地方的特种工艺| vt是什么| 三门代表什么生肖| 月德是什么意思| 金骏眉属于什么茶| 嘎巴拉是什么| 右脸颊长痘是什么原因| 杭州菜属于什么菜系| 胃肠功能紊乱是什么意思| 肝肿瘤不能吃什么| 头皮痒挂什么科| 不除外是什么意思| 7月30日是什么日子| 宝宝吃什么奶粉好| 大便颜色发黑是什么原因| 均可是什么意思| 烧心反酸水吃什么药| aj是什么意思| 女人颧骨高有什么说法| 宁波有什么特产| 腿部肿胀是什么原因引起的| 筋疼挂什么科| 脑供血不足做什么检查能查出来| 黛力新是什么药| 什么叫溶血| 前列腺肥大是什么症状| 鼻咽炎吃什么药| 叫花子是什么意思| 心跳不规律是什么原因| 什么叫高潮| 如厕什么意思| 事物是什么意思| 布拉吉是什么| 什么大什么小| 花甲和什么不能一起吃| 缄默是什么意思| 牛肉排酸是什么意思| canon是什么意思| 三十八岁属什么生肖| 蓝精灵是什么| 支气管舒张试验阳性是什么意思| 百度
Best way to implement three-state switching in react?
P粉928591383
P粉928591383 2025-08-04 13:51:32
0
1
874

I'm creating some buttons in React that trigger a state change from one to the next. Some of my buttons have three states, represented by enums. These three states should be set in consecutive order. When the last value is reached, the next operation should set the state back to the first value of the enumeration again. What's the clever way to accomplish this?

import { create } from 'zustand'
import { devtools, persist, createJSONStorage } from 'zustand/middleware'
import { BackgroundVariant as Background } from 'reactflow';

function nextBackground(background: Background): Background {
  switch (background) {
    case Background.Dots:
      return Background.Cross;
    case Background.Cross:
      return Background.Lines;
    default:
      return Background.Dots;
  };
};

interface MenuState {
  background: Background;
  toggleBackground: () => void;
}

export const useMenuStore = create<MenuState>()(
  devtools(
    persist(
      (set) => ({
        background: Background.Dots,
        toggleBackground: () => set((state) => ({
          background: nextBackground(state.background)
        }))
      }),
      {
        name: 'menu-storage',
        storage: createJSONStorage(() => localStorage),
      }
    )
  )
);

P粉928591383
P粉928591383

reply all(1)
P粉801904089

Here is an example of a function that accepts any enumeration and will return the next value or the first value if it is the last value:

function getNextEnumValue>(enumObj: T, currentValue: T[keyof T]): T[keyof T] {
  const enumValues = Object.values(enumObj);
  const enumKeys = Object.keys(enumObj) as (keyof T)[];
  const currentIndex = enumKeys.findIndex(key => enumObj[key] === currentValue);

  if (currentIndex === -1) {
    throw new Error(`Invalid enum value: ${currentValue}`);
  }

  const nextIndex = currentIndex + 1;
  if (nextIndex === enumKeys.length) {
    return enumObj[enumKeys[0]];
  }

  const nextValue = enumObj[enumKeys[nextIndex]];
  if (!enumValues.includes(nextValue)) {
    throw new Error(`Invalid enum value: ${nextValue}`);
  }

  return nextValue;
}
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
金玉满堂是什么菜 风水宝地是什么意思 睡觉起来嘴巴苦是什么原因 杂交金毛犬长什么样子 盆底肌高张是什么意思
北京为什么叫帝都 hcy是什么检查项目 减肥头晕是什么原因 掉头发是什么原因 血小板高有什么危害
浠字五行属什么 经期洗头有什么危害 反复发烧是什么原因 蛋白质偏高是什么原因 黄体不足吃什么药
风湿类风湿有什么区别 roca是什么品牌 里急后重吃什么药 幼小衔接班主要教什么 手足口病是什么病
主观臆断是什么意思hcv9jop1ns1r.cn 一什么水缸hcv7jop6ns0r.cn tvoc是什么意思hcv7jop9ns1r.cn 安痛定又叫什么名字hcv9jop5ns6r.cn 痤疮用什么药治最好效果最快hcv9jop7ns3r.cn
喝蒲公英茶有什么作用hcv7jop9ns1r.cn 支气管扩张是什么原因引起hcv9jop6ns5r.cn 胃消化不良吃什么药hcv8jop2ns1r.cn 文采是什么意思hcv7jop9ns2r.cn 诺迪康胶囊治什么病hcv8jop2ns7r.cn
子宫切除有什么影响hcv7jop7ns0r.cn 名垂千古是什么意思hcv7jop7ns1r.cn 发心是什么意思hcv9jop5ns3r.cn 自学成才是什么意思hcv8jop6ns8r.cn 6月19日是什么节日weuuu.com
仰卧起坐是什么现象hcv9jop1ns9r.cn 权志龙的团队叫什么hcv7jop9ns0r.cn 狐臭看什么科hcv8jop7ns7r.cn 易胖体质是什么原因造成的hcv9jop6ns6r.cn 腰肌劳损看什么科sanhestory.com
百度