在ArrayInput/SimpleFormIterator内部使用ReferenceField



正如标题所说。我需要在ArrayInput/SimpleFormIterator内部使用ReferenceField。我一直得到以下错误:

TypeError: Cannot read property 'replace' of undefined

版本:

react-admin: 3.2.3
react: 16.12.0

以下是代码片段:

<ArrayInput source="specialties" label="">
<SimpleFormIterator disableAdd>
<ReferenceField label="Specialties Link" source="ID" reference="specialty" link="show" >
<TextField source="ID" />
</ReferenceField>
<TextInput source="vendorSpecialtyText" label="Vendor Specialty Text" />
</SimpleFormIterator>
</ArrayInput>

有一种资源叫做speciality,它在应用程序的其他部分的ArrayField中工作,比如

<ArrayField source="specialties" label=" Specialties">
<SingleFieldList>
<ReferenceField label="Specialties Link" source="ID" reference="specialty" link="show" >
<TextField source="ID" />
</ReferenceField>
</SingleFieldList>
</ArrayField>

不确定这在这个框架内是不可能的,还是我实施错了。如果有办法解决这个问题或有不同的想法,请告诉我!谢谢

来自文档:

注意:SimpleFormIterator只接受Input组件作为子级。如果你想使用一些Fields,你必须使用<FormDataConsumer>来获得正确的源,。。。">

import { ArrayInput, SimpleFormIterator, DateInput, TextInput, FormDataConsumer } from 'react-admin';
<ArrayInput source="backlinks">
<SimpleFormIterator disableRemove >
<DateInput source="date" />
<FormDataConsumer>
{({ getSource, scopedFormData }) => {
return (
<TextField
source={getSource('url')}
record={scopedFormData}
/>
);
}}
</FormDataConsumer>
</SimpleFormIterator>
</ArrayInput>

或包括输入字段

<ArrayInput source="specialties" label="">
<SimpleFormIterator disableAdd>
<ReferenceInput label="Specialties Link" source="ID" reference="specialty">
<SelectInput optionText="{Your description field}"  />
</ReferenceInput>
<TextInput source="vendorSpecialtyText" label="Vendor Specialty Text" />
</SimpleFormIterator>
</ArrayInput>

最新更新