javascript - Ser ut som hoisting fungerer i React Native med const


Jeg la merke til en interessant ting i React Native. Jeg trodde at const og let ikke støttet hoisting i ES6. Hvordan er det mulig å bruke const styles over definisjonen sin?

    render() {
        const { repos } = this.state;
        const reposList = repos.map((rep, index) => {
            return (
                    <Text>{rep.name}</Text>
            )
        });

        return (
                <View style={styles.container}>  <-- styles should not be defined
                    {reposList}
                </View>
        );
    }
}

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

Er det på grunn av hoisting-mekanismen i React Native?

Svar #1

du har render definert i en klasse, klassen er bare definert, ikke kjørt, så den kan se stilene du lager under den. det er egentlig ikke hoisting.