const app: () => React $ Node = () => {…}: इस निर्देश का क्या अर्थ है?


23

पर react-native init ProjectName, मुख्य ऐप फ़ाइल App.jsमें निम्नलिखित तरीके से एक घटक की घोषणा शामिल है:

const App: () => React$Node = () => {...}

इस निर्देश का क्या अर्थ है?

मेरा मतलब है, मैं घटक के रूप में परिभाषित const App = () => {...}हूं, इसलिए मुझे समझ में नहीं आता है, विशेष रूप से, बीच में अभिव्यक्ति : () => React$Node


8
क्या आप सुनिश्चित हैं कि यह एक JS फाइल है? जो टाइपस्क्रिप्ट की तरह दिखता है।
फिक्स

4
@ मुझे लगता है कि यह
मार्को

2
आह समझ में आता है।
फिक्स

जवाबों:


15

फ्लो से इसकी टाइप डेफिनिशन, इसका मतलब है कि लगातार ऐप टाइप फंक्शन का है और यह रिएक्टनोड लौटाता है।

ReactNode इनमें से एक प्रकार है: ReactChild | ReactFragment | ReactPortal | boolean | null | undefined

इसका मतलब यह है कि फ़ंक्शन ऐप वापस आ सकता है, किसी भी वैध JSX (प्रतिक्रिया में मूल दृश्य, पाठ, .etc से कुछ भी), ReactFragment, React.Portal, बूलियन, अशक्त, अपरिभाषित

यदि आप डॉलर चिह्न के बारे में भ्रमित हैं, तो यहां स्पष्टीकरण के साथ एक लिंक दिया गया है। https://www.saltycrane.com/flow-type-cheat-sheet/latest/

नाम में $ के साथ "निजी" या "जादू" प्रकार के लिए अलग-अलग अनुभाग हैं। नोट यहाँ देखें और यहाँ टिप्पणी करें। अद्यतन: कुछ प्रकार अब यहाँ प्रलेखित हैं।

आसान के लिए आप के रूप में यह सोच सकते हैं अपने Nodeसे React(गुंजाइश / नाम स्थान के रूप में यह के बारे में सोच)


3
टाइपस्क्रिप्ट ReactNode, बिना होगा$
टॉमस बॅलचुट

मुझे लगता है कि नमूना प्रतिक्रिया मूल निवासी प्रवाह का उपयोग करता है। लेकिन मुझे फ्लो के बारे में कोई दस्तावेज नहीं मिला React$Node। क्या आप मुझे इस बिंदु को स्पष्ट करने में मदद कर सकते हैं?
मार्को

ok @marco my bad इसका फ़्लो, टाइपस्क्रिप्ट नहीं, लेकिन जैसा कि मैंने अपने उत्तर में उल्लेख किया है रिएक्ट नोड मूल रूप से कोई भी तत्व है जिसे आप प्रस्तुत कर सकते हैं, पूरी परिभाषा को उत्तर में डाल देगा।
लूकैस गिबो वैक

ठीक है, लेकिन मुझे अभी भी React$Node(डॉलर चिह्न ...) के बारे में कुछ याद है, फ्लो डॉक में इसका कोई संदर्भ नहीं है
मार्को

@marco ने जवाब तय किया, ReactNode फ्लो से नहीं है, रिएक्ट विशिष्ट प्रकार के लिए इसकी एकमात्र फ्लो परिभाषा
Lukáš Gibo Vaic

1

React $ Node एक प्रकार है जो react.js में परिभाषित किया गया है

declare type React$Node =
  | null
  | boolean
  | number
  | string
  | React$Element<any>
  | React$Portal
  | Iterable<?React$Node>;

1

यह एक फ़ंक्शन के रूप में ऐप घटक की घोषणा का एक प्रकार भी है लेकिन आप इसे बदल सकते हैं

import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View } from 'react-native';

export default class App extends Component {
    render() {
        return (
            <View style={styles.container}>
                <Text style={styles.instructions}>Hello World!</Text>
            </View>
        );
    }
}

const styles = StyleSheet.create({
    container: {
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center',
        backgroundColor: '#F5FCFF'
    },
    instructions: {
        textAlign: 'center',
        color: '#333333',
        marginBottom: 5
    }
});

अंतिम पंक्ति में कथन निर्यात डिफ़ॉल्ट ऐप को निकालना न भूलें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.