React-Admin 将值更改为 SelectInput 中的自定义值

React-Admin Change values to custom values in the SelectInput

我在 react-admin 中使用了以下代码:

<ReferenceInput label="Animal" source="id"reference="animal">
   <SelectInput optionText="type" choices={[ {id: '0', name: 'Cat' }, { id: '1', name: 'Dog'},]}/>
</ReferenceInput>

在该代码中,它从我的数据库接收值“0”表示猫,“1”表示狗,当我在下拉菜单中单击时,它显示“0”和“1”,但我想显示在我的 SelectInput 中只有猫和狗,而不是“0”和“1”。

我尝试使用:choices={[ {id: '0', name: 'Cat' }, { id: '1', name: 'Dog'},]},但在下拉列表中没有效果。

有人知道我该怎么做吗?

您可以传入 optionText 属性来显示所选记录的功能,而不是字段名称的字符串:

<ReferenceInput label="Animal" source="id" reference="animal">
   <SelectInput optionText={ choice => choice.type === 0 ? 'Cat' : 'Dog' }/>
</ReferenceInput>

我发现我的问题是什么了。

来自数据库的值只是一个数值 (0, 1) 而我使用的是 ('0', '1')。因此,SelectInput 无法使用正确的值在 DropDown 中显示。

正确的做法应该是这样的:

<SelectInput 
 optionText = "type" 
 choices = {[{id: 0, name: 'Cat'}, {id: 1, name: 'Dog'},]} 
/>

其中数值不使用引号。