나는 이것을 역사적인 목적으로 여기에 남겨두고 있습니다. 한동안 반응에서 개발 한 후
NgIf 구성 요소를 만든 후 훨씬 더 나은 솔루션을 위해 아래 편집을 참조하십시오 (이것은 반응 네이티브이지만 아마도 반응을 위해 작동합니다)
암호:
import React, {Component} from "react";
class NgIf extends Component {
render() {
if (this.props.show) {
return (
this.props.children
);
} else {
return null
}
}
}
export default NgIf;
용법:
...
import NgIf from "./path/to/component"
...
class MyClass {
render(){
<NgIf show={this.props.show}><Text>This Gets Displayed</Text></NgIf>
}
}
나는 이것에 익숙하지 않으므로 아마도 개선 될 수 있지만 Angular에서 전환하는 데 도움이됩니다.
편집하다
더 많은 경험이 있으면 더 나은 설명을 위해 아래 편집을 참조하십시오.
아래의 Jay의 의견 덕분에 좋은 아이디어도 있습니다.
render() {
<View>{this.props.value ? <Text>Yes</Text> : <Text>No</Text>}</View>
}
또는
render() {
<View>{this.props.value && <Text>Yes</Text>}</View>
}
다른 답변 중 일부와 비슷하지만 전체 렌더 블록 / 함수를 사용하는 대신 인라인으로 작동하며 특별한 구성 요소가 필요하지 않으며 삼항 연산자와 함께 else 문을 사용할 수 있습니다. if 문에 포함 된 Plus 항목은 부모 개체가없는 경우 오류를 발생시키지 않습니다. 즉 props.value
, 존재하지 않으면 props.value.value2
오류가 발생하지 않습니다.
이 답변을 참조하십시오 https://stackoverflow.com/a/26152067
편집 2 :
위의 링크 ( https://stackoverflow.com/a/26152067 )에 따라 반응 앱 개발에 더 많은 경험을 쌓은 후에는 위의 방법으로 작업을 수행하는 가장 좋은 방법이 아닙니다.
반응의 조건부 연산자는 실제로 머리를 돌리기 매우 쉽습니다. 작업을 수행하는 방법에는 두 가지가 있습니다.
{someItem && displayThis}
{someItem ? displayThisIfTrue : displayThisIfFalse}
한 가지주의 할 점은 "someItem"이 부울 표현식이 아닌 경우입니다. 0 인 경우 react는 0을 인쇄하거나 react native는 텍스트 요소에서 "0"을 래핑해야한다는 오류를 표시합니다. 이것은 일반적으로 허위 테스트에는 문제가되지 않지만 진실 테스트에는 문제가 될 것입니다. 예를 들면 :
{!someItem && displayThis}
{someItem && displayThis}
자주 사용하는 트릭? 이중 네거티브.
{!!someItem && displayThis}
이는 결과를 부울 표현식으로 암시 적으로 변환하기 때문에 삼항 연산자 (myVar? true : false) 에는 적용되지 않습니다 .