本文将介绍jsx中的if-else语句:ReactJS的详细情况,特别是关于jsxifelse的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于and
本文将介绍jsx中的if-else语句:ReactJS的详细情况,特别是关于jsx if else的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于android中的if else语句、AngularJS模板中的if else语句、c – SSE内在函数中的if / else语句、DB2 / 400中的if-else语句的知识。
本文目录一览:- jsx中的if-else语句:ReactJS(jsx if else)
- android中的if else语句
- AngularJS模板中的if else语句
- c – SSE内在函数中的if / else语句
- DB2 / 400中的if-else语句
jsx中的if-else语句:ReactJS(jsx if else)
当需要指定特定状态时,我需要更改渲染功能并运行一些子渲染功能,
例如:
render() { return ( <View style={styles.container}> if (this.state == ''news''){ return ( <Text>data</Text> ) } </View> )}
如何在不更改场景的情况下实现这一点,我将使用标签动态更改内容。
答案1
小编典典根据 DOC :
if-else语句在JSX中不起作用。这是因为JSX只是函数调用和对象构造的语法糖。
基本规则:
JSX从根本上讲是syntactic sugar.。编译后,JSX表达式成为常规的JavaScript函数调用,并评估为JavaScript对象。我们可以通过将花括号括起来将任何JavaScript表达式嵌入JSX中。
但是只有表达式而不是语句,直接意味着我们不能在JSX内放置任何语句( if-else / switch / for)。
如果要有条件地渲染元素,请使用ternary operator
,如下所示:
render() { return ( <View style={styles.container}> {this.state.value == ''news''? <Text>data</Text>: null } </View> )}
另一个选择是,从中调用一个函数jsx
,并将所有if-else
逻辑放入其中,如下所示:
renderElement(){ if(this.state.value == ''news'') return <Text>data</Text>; return null;}render() { return ( <View style={styles.container}> { this.renderElement() } </View> )}
android中的if else语句
我是Android的新手,在互联网上找到了一些很好的教程,所以我尝试了一个带有if-else语句的简单活动.我正在尝试“正确和错误”的提示/ Toast:
Button page1 = (Button) findViewById(R.id.button2);
page1.setonClickListener(new View.OnClickListener() {
public void onClick(View view) {
final ImageView iv1 = (ImageView) findViewById(R.id.imageView1);
if (iv1.equals(R.drawable.airplane1)) {
Toast.makeText(getApplicationContext(), "Correct",
Toast.LENGTH_SHORT).show();
} else if (iv1.equals(R.drawable.airplane2)) {
Toast.makeText(getApplicationContext(), "Please put an answer",
Toast.LENGTH_SHORT).show();
} else if (iv1.equals(R.drawable.airplane3)){
Toast.makeText(getApplicationContext(), "Wrong",
Toast.LENGTH_SHORT).show();
}
}
});
我不确定我的if-else语句有什么问题,但根本没有提示.我尝试删除(iv1.equals(R.drawable.airplane3))和(iv1.equals(R.drawable.airplane2))然后它只显示错误的Toast.我似乎无法正确地提示我.
这是我班级的完整代码:
public class MainActivity extends Activity {
private static final Random imagerandom = new Random();
private static final Integer[] Imagesnumber =
{ R.drawable.airplane1, R.drawable.airplane2, R.drawable.airplane3, };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Integer a = Imagesnumber[imagerandom.nextInt(Imagesnumber.length)];
final ImageView iv = (ImageView) findViewById(R.id.imageView1);
View nextButton = findViewById(R.id.button1);
nextButton.setonClickListener(new Button.OnClickListener() {
public void onClick(View V) {
int resource = Imagesnumber[imagerandom.nextInt(Imagesnumber.length)];
iv.setimageResource(resource);
}
});
Button page1 = (Button) findViewById(R.id.button2);
page1.setonClickListener(new View.OnClickListener() {
public void onClick(View view) {
final ImageView iv1 = (ImageView) findViewById(R.id.imageView1);
if (iv1.equals(R.drawable.airplane1)) {
Toast.makeText(getApplicationContext(), "Correct",
Toast.LENGTH_SHORT).show();
} else if (iv1.equals(R.drawable.airplane2)) {
Toast.makeText(getApplicationContext(), "Please put an answer",
Toast.LENGTH_SHORT).show();
} else if (iv1.equals(R.drawable.airplane3)){
Toast.makeText(getApplicationContext(), "Wrong",
Toast.LENGTH_SHORT).show();
}
}
});
}
}
解决方法:
iv1.getDrawable().getConstantState().equals(getResources().getDrawable(R.drawable.airplane1).getConstantState())
AngularJS模板中的if else语句
我想在AngularJS模板中做一个条件。我从Youtube API获取视频列表。某些视频的比例为16:9,有些视频的比例为4:3。
我想要这样的条件:
if video.yt$aspectRatio equals widescreen then
element's attr height="270px"
else
element's attr height="360px"
我正在使用迭代视频ng-repeat
。不知道该如何应对这种情况:
- 在范围内添加功能?
- 是否在模板中?
c – SSE内在函数中的if / else语句
我原来的代码是:
unsigned long c; unsigned long constant = 0x12345678; unsigned long table[256]; int n,k; for( n = 0; n < 256; n++ ) { c = n; for( k = 0; k < 8; k++ ) { if( c & 1 ) c = constant ^ (c >> 1); else c >>= 1; } table[n] = c; }
这段代码的目标是计算一个crc表(常量可以是任何多项式,它在这里不起作用),
我想我的优化代码是这样的:
__m128 x; __m128 y; __m128 *table; x = _mm_set_ps(3,2,1,0); y = _mm_set_ps(3,0); //offset for incrementation offset = _mm_set1_ps(4); for( n = 0; n < 64; n++ ) { y = x; for( k = 0; k < 8; k++ ) { //if do something with y //else do something with y } table[n] = y; x = _mm_add_epi32 (x,offset); }
我不知道如何通过if-else语句,但我怀疑有一个聪明的伎俩.有谁知道如何做到这一点?
(除此之外,我的优化可能非常差 – 对它的任何建议或更正都会得到最大的同情)
解决方法
c >>= 1; c = c >> 1; c = 0 ^ (c >> 1);
我为什么要介绍独家或?因为在“真实”声明中也可以找到exclusive或者:
c = constant ^ (c >> 1);
注意相似性?在“真实”部分中,我们用常数xor,在虚假部分中,我们xor为零.
现在,我将向您展示整个if / else语句的一系列转换:
if (c & 1) c = constant ^ (c >> 1); // same as before else c = 0 ^ (c >> 1); // just different layout if (c & 1) c = constant ^ (c >> 1); else c = (constant & 0) ^ (c >> 1); // 0 == x & 0 if (c & 1) c = (constant & -1) ^ (c >> 1); // x == x & -1 else c = (constant & 0) ^ (c >> 1);
现在两个分支只在二进制的第二个参数中有所不同,并且可以从条件本身中简单地计算,从而使我们能够摆脱if / else:
c = (constant & -(c & 1)) ^ (c >> 1);
免责声明:此解决方案仅适用于二进制补码架构,其中-1表示“所有位设置”.
DB2 / 400中的if-else语句
我正在尝试在AS400中运行包含if-else语句的SQL,但是它不起作用。我正在使用i Series Navigator创建一个View,以便运行它。
SELECT IF FIELD1 IS NOT NULL THEN 'AAA' ELSE 'BBB' END IF
FROM LIB.TABLE1
我得到的错误是:
SQL State: 42601
Vendor Code: -199
Message: [SQL0199] Keyword IS not expected. Valid tokens:,FROM INTO. Cause . .
我没有写就尝试过null但相反
SELECT IF FIELD1 ='' THEN 'AAA' ELSE 'BBB' END IF
FROM LIB.TABLE1
然后我得到以下错误:
SQL State: 42601
Vendor Code: -104
Message: [SQL0104] Token = was not valid. Valid tokens:,FROM INTO. Cause . . . . . : A syntax error was detected at token =. Token = is not a
今天关于jsx中的if-else语句:ReactJS和jsx if else的分享就到这里,希望大家有所收获,若想了解更多关于android中的if else语句、AngularJS模板中的if else语句、c – SSE内在函数中的if / else语句、DB2 / 400中的if-else语句等相关知识,可以在本站进行查询。
本文标签: