首页 > 解决方案 > react-admin:使用 SelectInput 过滤显示错误的值

问题描述

我的应用程序中的以下过滤器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.

标签: reactjsreact-admin

解决方案


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

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

来源

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

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

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


推荐阅读