defaultValue in AOR-dependent-input

344 Views Asked by At

I want to set defaultValue for field in aor-dependent-input, I already set defaultValue for ReferenceInput, but how can I set defaultValue for DependentInput using SubGenreInput

Here is my code:

<Create {...propsEdit} title=" " actions="">
<SimpleForm  redirect={"/caregiver/" + cid}>
    {/*<ReferenceArrayInput>*/}
    <DisabledInput source="user" defaultValue={cid} label="Caregiver ID"/>
    <ReferenceInput label="Centre" source="centre" defaultValue={this.props.record.student.centre.id} reference="centre" sort={{ field: 'name', order: 'ASC' }} allowEmpty>
        <SelectInput optionText="name" />
    </ReferenceInput>
    <DependentInput dependsOn="centre">
        <SubGenreInput source="current_group" optionText="label" optionValue="id" type="classgroup"/>
    </DependentInput>
    <DependentInput dependsOn="current_group" defaultValue={this.props.record.student.id}>
        <SubGenreInput source="student_id" optionText="fullname" optionValue="id" type="student"/>
    </DependentInput>
    {/*</ReferenceArrayInput>*/}
    <RadioButtonGroupInput source="account_type"  defaultValue={10} choices={[
        { id: 10, name: 'Caregiver' },
        { id: 20, name: 'Guardian' },
    ]} optionText="name" optionValue="id" />
    <TextInput source="relationship" label="Relationship"/>
</SimpleForm>

Interface:

https://i.stack.imgur.com/wFHKC.png

// I'm not allow to post the images :(

1

There are 1 best solutions below

0
On BEST ANSWER

This is a known issue which will be addressed by version 1.3.0 of admin-on-rest. In the mean time you can use this workaround:

<DependentInput source="appointmentTimeslot" dependsOn="planned" defaultValue={1}>
    <ReferenceInput source="appointmentTimeslot" reference="timeslots" allowEmpty={true} >
        <SelectInput optionText="name" optionValue="id" />
    </ReferenceInput>
</DependentInput>

Note that we specified source on both the DependentInput component and its child. The defaultValue, however, is specified on the DependentInput component only.

This workaround won't work if you pass multiple children to the DependentInput component.