Admin-on-Rest有没有办法摆脱ReferenceInput for Filters中的重复项?

时间:2017-07-28 19:58:52

标签: admin-on-rest

我遇到了一个问题,我试图过滤一个名为“Severity”的列,列中有重复项。此列包含ERROR,INFO或DEBUG。当我使用它时:

shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));

在我的下拉菜单中,我得到了一系列重复的东西......是否有办法让它只有我想要的选项而没有重复?

1 个答案:

答案 0 :(得分:0)

你需要的是一个HigherOrder组件来包装SelectInput并在它们点击选择输入之前过滤掉它们。

const SelectUniqueChoices = WrappedComponent => props => {
  const filteredChoices = UniqueElements(props.choices)
  const newProps = {...props}
  newProps.choices = filteredChoices 
  return (<WrappedComponent {...newProps} />)
}

const UniqueElements = (array) => (
   Array.from(new Set(array))
)

const WrappedSelectField = SelectUniqueChoices(SelectInput)

const LogFilter = (props) => (
     <Filter {...props}>
        <TextInput label="Search" source="q" alwaysOn />
        <ReferenceInput label="Severity" source="severity" reference="archivedfiles" allowEmpty>
            <WrappedSelectField optionText="Severity" />
        </ReferenceInput>
     </Filter>
);