react-admin:使用 SelectInput 的过滤器显示错误的值

react-admin: Filter with SelectInput shows wrong values

我的 react-admin 应用程序中的以下过滤器导致列表显示带有 status === "active" 的记录和带有 status === "inactive" 的记录。它应该只显示 status === "active".

的记录
<SelectInput 
  alwaysOn 
  source="status" 
  choices={[
    { id: "lead", name: "Lead" },
    { id: "active", name: "Aktiv" },
    { id: "inactive", name: "Inaktiv" },
  ]} 
/>

它似乎包含带有 status === "inactive" 的记录,因为“inactive”包含子字符串“active”。

我能做点什么吗?我的 DataProvider 配置有误吗?我正在使用 react-admin-firebase.

react-admin-firebase 在搜索字符串时总是进行模糊搜索:

 const isStringSearch = typeof searchValue === 'string';
  if (isStringSearch) {
    return searchThis
      .toString()
      .toLowerCase()
      .includes(searchValue.toLowerCase());
  }

Source

一个解决方案是使用 status 的数字代替:

<SelectInput 
  alwaysOn 
  source="status" 
  choices={[
    { id: 1, name: "Lead" },
    { id: 2, name: "Aktiv" },
    { id: 3, name: "Inaktiv" },
  ]} 
/>

另一种解决方案是启用延迟加载以直接针对您的 firebase 进行搜索。