试图理解现有反应代码的一些陈述
HttpPost login = new HttpPost("https://www.Webseite.de/einloggen.html");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("loginMail", "login_name"));
nvps.add(new BasicNameValuePair("password", "login_passwort"));
login.setEntity(new UrlEncodedFormEntity(nvps));
CloseableHttpResponse response2 = httpclient.execute(login);
如何评估?
<Modal.Footer>
{ getButtons.call(this)}
{ this.props.footerLinkText && getFooterLink.call(this) }
</Modal.Footer>
我明白这是一个条件?
此代码:
this.props.footerLinkText && getFooterLink.call(this)
不确定。只需要快速解释。
答案 0 :(得分:1)
您在第一个示例中看到的是使用逻辑“AND”运算符&&
的二进制短路评估表达式。 请参阅:Logical Operators - JavaScript | MDN
在第二个示例中,您使用逻辑“OR”运算符||
获得一系列二进制短路评估表达式,然后使用三元运算符?
{{1}进行条件评估}。 请参阅:Conditional (ternary) Operator - JavaScript | MDN
这些都不是ReactJS的原生,但它们非常适合在JSX中使用,因为它们是可以“内联”评估的表达式,而:
- if
之类的语句不起作用,除非放在 immediately-invoked function expression 内部或移出JSX标记。 请参阅:If-Else in JSX | React
另见:
答案 1 :(得分:1)
{this.props.footerLinkText&amp;&amp; getFooterLink.call(this)}
这是Short-Circuit Evaluation。这意味着如果<base href="">
为真,则会执行this.props.footerLinkText
。
{this.props.closeBtnText || '取消'}
如果getFooterLink
真实,则会返回this.props.closeBtnText
。因此,将显示Cancel