Кнопка выбора предустановленного реагирования - PullRequest
0 голосов
/ 15 мая 2018

У меня есть раздел на панели Клиента, чтобы согласиться (или нет) получать рекламные письма. Я установил это как выбор из двух переключателей, да или нет.

Технически все работает просто отлично, я могу хранить правильную информацию в БД, но начальное состояние переключателей не отображается. Правильное значение отправляется от его «родителя», но кажется, что оно не передано в фактическую форму.

Чего я хотел бы добиться, так это начальной проверяемой переключательной кнопки (true, false):

enter image description here enter image description here

Информация отправляется (в строке 52, [PROMO_CONSENT]: promo_consent ):

        [PROMO_CONSENT_FORM]: {
        label: _t(panelMessages.promos),
        data: Promo,
        form: {
            formId: PROMO_CONSENT_FORM,
            data: {
                [PROMO_CONSENT]: promo_consent
            }
        }
    }

но тогда, кажется, больше нигде не видно. Для управления состояниями радиокнопок компонент FormChoiceGroup называется component: FormChoiceGroup, .

        [PROMO_CONSENT_FORM]: {
        formId: [PROMO_CONSENT_FORM],
        endpoint: '/accounts/set_promo/',
        fields: [
            {
                name: PROMO_CONSENT,
                label: _t(panelMessages.promoLabel),
                component: FormChoiceGroup,
                type: 'radio',
                isRequired: false
            }
        ]
    }

Это много кода, если кому-то захочется его пройти, я буду признателен за это.

Блок: Панель основного блока

Форма: Форма панели, часть согласия начинается со строки 96

ChoiceGroup: Компонент для управления переключателями

1 Ответ

0 голосов
/ 16 мая 2018

Я должен был отправить НЕ логическое значение, а превратить его в строку, чтобы послать буквальное «true» или «false», а не true / false.

Я установил const , который проверял состояние переменной, а затем присваивал ей литеральные значения:

const val = this.state.formData[field.name] == false ? "false" : "true";

Эта простая вещь сделала свое дело.

...