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

这段代码是干什么的,或者仅仅是一个错误

如何解决这段代码是干什么的,或者仅仅是一个错误

我学习了Reactjs,阅读了大量代码,无法做到这一点。
这是代码中的错误还是在做某事?

我的意思是这一行:

this.props.onEnd && this.props.onEnd();

我知道onEnd()是对父项的回调,但是它如何像这样工作? 代码

/**
 *  Let parent components kNow that we reached the end of display
 */
_onEnd(isVisible) {
    if (!isVisible) return;
    this.props.onEnd && this.props.onEnd();
}

解决方法

这等同于说:

if (this.props.onEnd != null) {   // validate not null or undefined
    this.props.onEnd();           // execute function
}

表示如下:

this.props.onEnd && this.props.onEnd();

如果onEnd为null或未定义,则表达式将短路。如果是,则该表达式的逻辑求值为:

false && this.props.onEnd()

在这种情况下,由于false && <anything else>将始终取值为false。如果运算符左侧的计算结果为false,则运行时不会评估右侧的调用。

类似地,如果onEnd有效,那么它在逻辑上被评估为:

true && this.props.onEnd()

在这种情况下,将评估并执行this.props.onEnd()

有关更多信息,请查找boolean short circuit作为互联网搜索。

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