You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在React TypeScript中将Set数据结构用作状态?

在React+TypeScript中用Set管理状态(保证值唯一)

初始化Set状态

直接用useState初始化空Set,同时指定TypeScript类型:

const [products, setProducts] = React.useState<Set<string>>(new Set());

添加值

React状态是不可变的,不能直接修改原Set,必须创建新的Set实例来更新。最好用函数式更新,避免闭包捕获旧状态的问题:

// 添加新商品,重复值会自动被忽略
setProducts(prev => new Set(prev).add("new product"));

移除值

同样通过创建新Set来执行删除操作:

// 删除指定商品
setProducts(prev => {
  const newSet = new Set(prev);
  newSet.delete("product-to-remove");
  return newSet;
});

渲染Set内容

如果需要把Set里的内容渲染到组件,用Array.from()或者扩展运算符转成数组即可:

return (
  <ul>
    {[...products].map(product => (
      <li key={product}>{product}</li>
    ))}
  </ul>
);

内容的提问来源于stack exchange,提问作者Allaris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 11:33:12