Как динамически отобразить или скрыть поля формы в зависимости от состояния поля BooleanInput вact-admin? - PullRequest
0 голосов
/ 20 января 2020

Мне нужно создать сложную форму редактирования с реагировать на администратора. Форма имеет множество ползунков да / нет, созданных с помощью компонента BooleanInput вact-admin. Если пользователь устанавливает ползунок «да», дополнительные поля формы должны появляться динамически, которые тематически относятся к ползунку. Как запросить состояние компонента BooleanInput или эта задача будет решена иначе?

<BooleanInput source="yesno" label="show or hide fields" />
<AutocompleteArrayInput source="probably_hidden1" label="show or hide me" choices={[
        { id: 'one', name: '1' },
        { id: 'two', name: '2' },
        { id: 'three', name: '3' }
]} />
<TextInput multiline source="text" label="show or hide me too" />

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Я выяснил: это можно сделать с помощью FormDataConsumer следующим образом:

<BooleanInput source="yesno" label="show or hide fields" />
<FormDataConsumer>
    {({ formData, ...rest }) => formData.yesno && <div>
        <AutocompleteArrayInput source="yesno" label="show or hide fields" choices={[
            { id: 'one', name: '1' },
            { id: 'two', name: '2' },
            { id: 'three', name: '3' }
        ]} {...rest} />
        <TextInput multiline source="text" label=""show or hide me too" {...rest} />
    </div>
    }
</FormDataConsumer>

См .: https://marmelab.com/react-admin/Inputs.html#hiding -входы на основе-других-входов

0 голосов
/ 20 января 2020

Вы можете писать динамически код внутри JSX

> { isShow ? <TextInput ... /> : null }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...