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

使用multiselect-react-dropdown组件出现Cannot read properties of undefined错误排查

解决multiselect-react-dropdown的"Cannot read properties of undefined (reading 'toLowerCase')"错误
  • 错误原因:
    multiselect-react-dropdown的options属性默认要求传入对象数组,每个对象需包含label(用于显示)和value(用于标识)字段。你现在把allItemsData映射成了字符串数组(仅item.name),组件内部会尝试读取每个选项的默认字段(比如label),但字符串没有这个属性,导致读取到undefined,进而调用toLowerCase时触发错误。同时因为找不到显示字段,所以渲染出空选项。

  • 修复方案:
    有两种常用方式解决:

    1. 映射成符合要求的对象数组:

      <Multiselect
        options={allItemsData?.map((item) => ({
          label: item.name,
          value: item.id // 用id作为唯一标识,也可以用name
        }))}
        onChange={(value) => console.log(value)}
      />
      

      这样组件能正确识别每个选项的显示文本和值,点击选择时也能正常触发onChange,返回选中的对象数组。

    2. 保留原对象数组,指定自定义显示字段:
      如果不想修改options的结构,可以通过组件的displayValue属性指定用哪个字段作为显示文本,valueField指定值字段:

      <Multiselect
        options={allItemsData}
        displayValue="name" // 指定显示item.name
        valueField="id" // 指定值为item.id
        onChange={(value) => console.log(value)}
      />
      

      这种方式更直接,适合直接使用原数据结构的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 00:32:52