微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将默认 className 设置为空字符串然后提供两个条件

如何解决将默认 className 设置为空字符串然后提供两个条件

我有这个条件 className={errors.firstName ? "invalid" : "valid"}

但如果这两个条件都不满足,我需要将其认为空字符串。

我正在努力思考如何解决这个问题,希望得到建议,因为我找不到任何资源。

我将不得不在其他文本区域字段上多次调用它,所以我知道我需要使其可重用。

解决方法

您可以为此使用 https://www.npmjs.com/package/classnames

className={classNames({ invalid: errors.firstName === true },{ valid: errors.firstName === false })

因此,如果 errors.firstName = true,则 className 将为 invalid。如果errors.firstName = false,那么它将是valid。如果 errors.firstName 是 undefined className 将是一个空字符串。

,

假设您的 firstName 错误首先不存在,或者在错误对象中使用 null 进行初始化。

const errors = { firstName: null } // or not having firstName

然后检查是否有 firsName 错误(可能是字符串类型,例如 firstName 错误消息或任何布尔值)。

<Component
  className={
    // if you explicitly set it to null use strict in-equality here
    errors.firstName != null ? "" : errors.firstName ? "invalid" : "valid"
  }
/>;

你也可以防止设置默认的空字符串,导致它的默认值:)

<Component
  {...(errors.firstName != null && {
    className: errors.firstName ? "invalid" : "valid",})}
/>;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。