Tôi để điều này ở đây cho mục đích lịch sử, vui lòng xem các chỉnh sửa của tôi bên dưới để có giải pháp tốt hơn nhiều sau khi đã phát triển trong phản ứng một thời gian,
tôi đã tạo thành phần NgIf (đây là thành phần phản ứng gốc nhưng có thể hoạt động cho phản ứng)
Mã:
import React, {Component} from "react";
class NgIf extends Component {
render() {
if (this.props.show) {
return (
this.props.children
);
} else {
return null
}
}
}
export default NgIf;
Sử dụng:
...
import NgIf from "./path/to/component"
...
class MyClass {
render(){
<NgIf show={this.props.show}><Text>This Gets Displayed</Text></NgIf>
}
}
Tôi mới làm quen với điều này nên có thể sẽ được cải thiện, nhưng giúp tôi trong quá trình chuyển đổi từ Angular
BIÊN TẬP
Xem các chỉnh sửa bên dưới để được giải thích rõ hơn sau khi tôi có thêm kinh nghiệm
Cảm ơn Bình luận của Jay bên dưới, một ý tưởng tuyệt vời cũng là:
render() {
<View>{this.props.value ? <Text>Yes</Text> : <Text>No</Text>}</View>
}
HOẶC LÀ
render() {
<View>{this.props.value && <Text>Yes</Text>}</View>
}
Tương tự như một số câu trả lời khác nhưng hoạt động nội tuyến, thay vì sử dụng toàn bộ khối / chức năng kết xuất, không yêu cầu một thành phần đặc biệt và bạn có thể sử dụng một câu lệnh khác với toán tử bậc ba. Các mục cộng có trong câu lệnh if không gây ra lỗi nếu đối tượng mẹ của chúng không tồn tại. Tức là nếu nếu props.value
không tồn tại, thì props.value.value2
sẽ không tạo ra lỗi.
Xem câu trả lời này https://stackoverflow.com/a/26152067
CHỈNH SỬA 2:
Theo liên kết ở trên ( https://stackoverflow.com/a/26152067 ) và sau khi có thêm nhiều kinh nghiệm phát triển ứng dụng phản ứng, cách trên không phải là cách tốt nhất để thực hiện mọi việc.
Các toán tử điều kiện trong phản ứng thực sự rất dễ khiến bạn phải lo lắng. Có hai cách để thực hiện:
{someItem && displayThis}
{someItem ? displayThisIfTrue : displayThisIfFalse}
Một cảnh báo bạn có thể gặp phải là nếu "someItem" không phải là một biểu thức boolean. Nếu nói 0 thì phản ứng sẽ in ra 0 hoặc phản ứng gốc sẽ cho bạn lỗi về việc cần phải bọc "0" trong phần tử văn bản. Đây thường không phải là vấn đề đối với các bài kiểm tra giả mạo, nhưng sẽ là vấn đề đối với các bài kiểm tra trung thực. Ví dụ:
{!someItem && displayThis}
{someItem && displayThis}
Thủ thuật thường sử dụng của tôi? phủ định kép.
{!!someItem && displayThis}
Lưu ý rằng điều này không áp dụng cho các toán tử bậc ba (myVar? True: false) vì nó chuyển đổi ngầm kết quả thành một biểu thức boolean.