首页 > 解决方案 > 如何在短 OR 运算符中返回空字符串?

问题描述

<FormItem
    hasFeedback
    validateStatus={ (isFirstRender) || (username && username.length > 6 ? "success": "error") }
>

</FormItem>

我正在验证用户输入。我只想验证输入,如果它不是 firstRender 并且我做了(isFirstRender) || (username && username.length > 6 ? "success": "error"),如果它是 firstRender 则返回 true,但 validateStatus 期望“”,“成功”,“警告”,“错误”和“验证”。如果是 firstRender,我想返回空字符串。如何做到这一点?

标签: javascriptreactjsantd

解决方案


您可以将多个三元运算符链接在一起,例如:

<FormItem
    hasFeedback
    validateStatus={(isFirstRender) ? "" : (username && username.length > 6 ? "success": "error") }
>

</FormItem>

正如评论中提到的,这不是真的可读,所以我建议拉出第二个三元并将其存储在一个变量中,如下所示:

// somewhere above
const usernameStatus = (username && username.length > 6) ? "success" : "error";

// ...

<FormItem
    hasFeedback
    validateStatus={(isFirstRender) ? "" : usernameStatus }
>

</FormItem>

推荐阅读