2017-10-20 16 views
2

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.

+0

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é? –

+0

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

Répondre

1

On dirait que le problème pourrait être avec react-native log-android

Je viens de tester votre code sur Google Chrome et qui semble fonctionner très bien. Peut-être que cela aidera à déterminer si le problème est avec log-android? `Constructor` et` componentWillMount` ne sont appelés qu'une seule fois (lorsque le composant est monté) How to make console.log work in react native for android

+0

Je reçois toujours les mêmes journaux de cette façon. – octavian