我需要根据记录的字段值显示不同的选择。
我需要的代码如下:
const myChoicesGenerator = (record) => {
if (record.field === false) {
return ['a', 'b'];
} else {
return ['b', 'c'];
}
<SelectInput ... choices = {myChoicesGenerator}/>
但是不幸的是,我无法在“ choices”属性中传递函数,因此此代码不起作用。
有办法吗?
答案 0 :(得分:2)
您可以使用<FormDataConsumer />
来获取当前记录并将其传递给函数。
<FormDataConsumer>
{
({formData, ...rest}) =>
<SelectInput
choices={myChoiceGenerator(formData)}
{...rest}
/>
}
</FormDataConsumer>
文档:https://marmelab.com/react-admin/Inputs.html#linking-two-inputs
我不知道值['a', 'b']
是否对<SelectInput />
有效。考虑使用documentation中所述的元组列表(id
,name
)。