как удалить свойство объекта при снятии флажка в реакции?

Я использую react-final-form и получаю помощь от этого примера https://codesandbox.io/s/52q597j2p

в приведенном выше примере свойство giftCardMessage удаляется из объекта, когда пользователь unchecked это поле Is this a gift?

Действия по воспроизведению.

  • проверил поле Is this a gift? и введите что-нибудь Message в текстовое поле. Затем снимите флажок, чтобы увидеть, что свойство будет удалено.

Я использовал вышеупомянутую концепцию и пытался сделать то же самое. Но в моем примере я использовал с префиксом. В моем примере, если я снял флажок, он не удалил свойство объекта

https://codesandbox.io/s/react-final-form-declarative-form-rules-uvz6y

<WhenFieldChanges
              field="gift"
              becomes={false}
              set="giftCardMessage"
              to={undefined}
            />
            <FieldPrefix prefix="apps.dh">
              <div>
                <label>Is this a gift?</label>
                <PrefixedField name="gift" component="input" type="checkbox" />
              </div>

              <div>
                <label>Message</label>
                <PrefixedField
                  name="giftCardMessage"
                  component="textarea"
                  placeholder="What do you want the card to say?"
                />
              </div>
            </FieldPrefix>

person user944513    schedule 31.08.2019    source источник


Ответы (1)


Ввод сообщения должен быть автоматически отключен, когда флажок снят (значение gif - истина или ложь), отметьте здесь https://imgur.com/a4Eigoh Вы должны добавить: disabled = {! values.gift} в свое сообщение, чтобы оно отвечало значению поля

person Misha    schedule 31.08.2019
comment
Это верно, но в этом случае вам следует изменить отключенное значение для этого примера: disabled = {values.apps && values.apps.dh? ! values.apps.dh.gift: true} - person Mauro Stepanoski; 31.08.2019