Javascript 如何在react中取消选中时删除对象的属性?

Javascript 如何在react中取消选中时删除对象的属性?,javascript,reactjs,react-context,react-final-form,Javascript,Reactjs,React Context,React Final Form,我正在使用react final form并从这个示例中获取帮助 在上面的示例中,当用户未选中此字段这是礼物吗? 复制的步骤 选中这是礼物吗?字段,并在文本字段中输入一些消息。然后取消选中see属性将被删除 我使用了上面的概念,并尝试做同样的事情。但在我的示例中,我使用了前缀,。在我的示例中,如果我取消选中复选框,则不会删除object的属性 这是礼物吗? 消息 如果未选中该框(gif的值为true或false),则应自动禁用消息输入,请选中此处 您应该将:disabled={!val

我正在使用
react final form
并从这个示例中获取帮助

在上面的示例中,当用户
未选中
此字段
这是礼物吗?

复制的步骤

  • 选中
    这是礼物吗?
    字段,并在文本字段中输入一些
    消息
    。然后取消选中see属性将被删除
我使用了上面的概念,并尝试做同样的事情。但在我的示例中,我使用了前缀。在我的示例中,如果我取消选中复选框,则不会删除object的属性


这是礼物吗?
消息

如果未选中该框(gif的值为true或false),则应自动禁用消息输入,请选中此处
您应该将:disabled={!values.gift}添加到您的消息中,以便它响应框的值

这是正确的,但是您应该更改此示例中的禁用值:disabled={values.apps&&values.apps.dh?!values.apps.dh.gift:true}
<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>