Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何返回简短或运算符形式的空字符串? 6?“成功”:“错误”)} >_Javascript_Reactjs_Antd - Fatal编程技术网

Javascript 如何返回简短或运算符形式的空字符串? 6?“成功”:“错误”)} >

Javascript 如何返回简短或运算符形式的空字符串? 6?“成功”:“错误”)} >,javascript,reactjs,antd,Javascript,Reactjs,Antd,我正在验证用户输入。我只想在输入不是firstRender且我确实执行了(isFirstRender)| |(username&&username.length>6?“success”:“error”)时验证输入,如果输入是firstRender,但validateStatus希望“成功”、“警告”、“错误”和“验证”,则返回true。如果是firstRender,我想返回空字符串。如何实现这一点?您可以将多个三元运算符链接在一起,例如: <FormItem hasFeedback

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

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

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

</FormItem>
6?“成功”:“错误”)}
>
正如在评论中提到的,这不是真正可读的,因此我建议取出第二个三元并将其存储在变量中,如下所示:

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

</FormItem>
//在上面的某个地方
const usernameStatus=(username&&username.length>6)?“成功”:“错误”;
// ...

isFirstRender从何而来?当检查用户名时,它会有什么值?如果不想在falsy空字符串上短路,请不要使用
|
。使条件显式并使用条件运算符。@down voter,请解释您的原因?谢谢@Aquarthur。我可以使用ternal运算符。这是最清晰的方法,因为它在htmlPlease中的just
if-else
语句永远不要使用嵌套ternaries。它们是不可读的,它们让你的同事讨厌你的代码。
// somewhere above
const usernameStatus = (username && username.length > 6) ? "success" : "error";

// ...

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

</FormItem>