Условное отображение поля на основе выбранного свойства ReferenceInput - PullRequest
0 голосов
/ 14 февраля 2019

Таким образом, приведенный ниже код прекрасно работает, но я использую ReferenceField только для извлечения записи, выбранной в ReferenceInput.Это немного странно.

Любой совет, как я ДОЛЖЕН сделать это?

Мой вариант использования:

// js-ish description of my datamodel

{ id, name, needsMeta } = Role

{ id, name } = RoleMeta

{ id, roleId, userId, metaId } = AssignedRole

Я строюФорма создания / редактирования для модели AssignedRole.

Я хочу показать ReferenceInput для metaId, только если выбранный Role нуждается в мета (needsMeta)

<ReferenceInput
    source="roleId"
    reference="role"
    sort={{
        field: 'id',
        order: 'ASC'
    }}
>
    <AutocompleteInput optionText="name" />
</ReferenceInput>
<FormDataConsumer>
    {({ formData, ...rest }) => (
        formData.roleId &&
        <ReferenceField
            source="roleId"
            record={{roleId: formData.roleId}}
            reference="role"
            basePath={rest.basePath}
            resource={rest.resource}
            linkType={false}
        >
            <FunctionField render={roleRecord => {
                if(!roleRecord.needsMeta){
                    formData.metaId = null;
                }
                return roleRecord && roleRecord.needsMeta && (
                    <ReferenceInput
                        source="metaId"
                        reference="rolemeta"
                        sort={{
                            field: 'id',
                            order: 'ASC'
                        }}
                        {...rest}
                    >
                        <AutocompleteInput optionText="name" />
                    </ReferenceInput>
                );
            }} />
        </ReferenceField>
    )}
</FormDataConsumer>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...