J'ai quelques React code natif dans lequel je donne les résultats suivants React Classe:Constructor est pas appelé, mais render est appelé
import React, { Component } from 'react';
import { ScrollView, StyleSheet, TouchableHighlight, View, Text, Platform } from 'react-native';
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux';
export default class MyList extends Component {
constructor(props) {
super(props);
console.log("In constructor!");
//some other code
}
componentWillMount() {
console.log("In componentWillMount!");
}
render() {
console.log("In render method!");
return (
<ScrollView
horizontal={true}
showsHorizontalScrollIndicator={true}
onLayout={this._onScrollViewLayout}
onScroll={this._onScroll}
ref={SCROLLVIEW_REF}
scrollEventThrottle={8}
>
//some other code
</ScrollView>
);
}
}
Le problème est que seul cela est imprimé dans les journaux:
ReactNativeJS: In render method!
Pourquoi ne puis-je pas voir la connexion dans le constructor
ou componentWillMount
, qui doit être appelée avant la méthode render
?
EDIT:
Pour l'enregistrement, j'utilise react-native log-android
.
Après cela, chaque fois que le composant est mis à jour, ces méthodes ne sont pas appelées mais le rendu est appelé. Voulez-vous dire que ces méthodes ne sont pas appelées même lorsque le composant est monté? –
Ok, mais la journalisation de ces méthodes devrait toujours apparaître, non? La journalisation est un middleware qui est dans la portée lorsque le constructeur est appelé, non? – octavian