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

Mantine Select组件数据无法渲染的问题求助

Mantine Select组件数据无法渲染的问题求助

嘿,我看了你的问题和代码片段,console能正常打印cityOptions但Select组件里就是不显示数据,大概率是几个常见的小问题导致的,我帮你梳理下排查方向:

  • 最可能的原因:用错了Select的数据源属性
    Mantine的Select组件用来传选项数据的属性是items,而不是你代码里写的data!这是很多刚用Mantine的开发者容易踩的坑,把属性名改过来应该就能解决大部分问题了。

  • 确认选项格式是否完全符合要求
    你通过map生成的cityOptions结构是对的(包含value和label字段),但还是要再确认下:

    • cities数组里的每个对象确实有id和name属性,没有拼写错误(比如把name写成cityName)
    • id转成字符串后是否正常,不会出现undefined或者空值的情况
      可以把cityOptions打印得更详细点,比如console.log(JSON.stringify(cityOptions)),看看结构是不是完全符合[{value: "xxx", label: "xxx"}, ...]
  • 检查isLoading状态的正确性
    会不会你的isLoading状态一直没有切换为false?导致即使数据加载完成了,Select还是传的空数组。可以在console.log(cityOptions)旁边加个console.log("isLoading:", isLoading),确认数据加载完成后isLoading会变成false。

  • 修正后的代码示例
    把data改成items是最关键的一步,调整后的Select组件代码大概是这样:

    <Select
      name="city"
      placeholder="Cities"
      value={city || null}
      maw={200}
      size="md"
      items={isLoading ? []: cityOptions} {/* 这里把data改成items */}
      disabled={isLoading}
      onChange={(value) => setCity(value as string)}
      icon={<IconSelector size={18} stroke={1.75} />}
      clearable
      style={{ marginBottom: 0 }}
    />
    

先试试把data换成items,这应该是最直接的解决方案,如果还是不行再排查其他几点~

备注:内容来源于stack exchange,提问作者Aakriti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 20:15:29