Javascript 如何在react js中使用条件运算符

Javascript 如何在react js中使用条件运算符,javascript,reactjs,Javascript,Reactjs,在许多地方,我设置修改人、创建人等: const test = this.state.isValueEdited ? { modifiedById: getLoggedInUser().userId, } : { // TODO }; 如何检查getLoggedInUser是否比access.userId有一些值。。否则,让我们设置null 谢谢 欢呼同时使用三元运算符 modifiedById: getLoggedInUser() ? getLoggedInUser().userId

在许多地方,我设置修改人、创建人等:

const test = this.state.isValueEdited
? {
  modifiedById: getLoggedInUser().userId,
}
: {
 // TODO
};
如何检查
getLoggedInUser
是否比access
.userId
有一些值。。否则,让我们设置
null

谢谢


欢呼

同时使用
三元运算符

 modifiedById: getLoggedInUser() ? getLoggedInUser().userId : null
避免执行两次

const evaluation = getLoggedInUser()

{modifiedById: evaluation ? evaluation.userId : null}

您可以使用逻辑或
|

modifiedById: ( getLoggedInUser() || { userId: null } ).userId
当从getLoggedInUser返回的值返回falsy值时,
{userId:null}
将作为默认值


如果getLoggedUser返回的值不符合条件,则该值应为falsy值

您可以首先检索用户,然后仅当
用户
返回truthy时,才可以使用
和&
运算符获取
用户ID
<代码>假,
未定义
,0,
NaN
都是假值

const user = getLoggedInUser() || null;

const test = this.state.isValueEdited ? ({
  modifiedById: user && user.userId,
}) : ...

如果当用户未登录时,
getLoggedInUser
已经返回
null
,您可以省略
|null

您可以解释这一行吗请
getLoggedInUser()|{userId:null}
这意味着即使userId为null,也要尝试访问它吗?还是?太好了!虽然不是这种语法的最大粉丝,但它肯定会得到这份工作done@Roxy'Pro当从
getLoggedInUser
返回的值为falsy时,只有
{userId:null}
将进入图片、逻辑或从左侧开始计算表达式,并在找到真值后停止,如果没有一个值为true,它将返回表达式中的最后一个值,因此在这里的
getLoggedInUser
中返回的值为false,而不仅仅是
{userId:null}
将被使用,否则从函数返回的值将被使用down voter care to comment:/This将调用
getLoggedInUser()
两次。这是低效的&可能会导致不必要的sife效应。