2016-05-05 9 views
6

Qualcuno sa perché questo avviso sta andando?ReactNative.createClass è obsoleto utilizzare React.createClass dal pacchetto "React" invece

un altro avviso è: ReactNative.createElement è deprecato. Utilizzare invece React.createElement dal pacchetto "react".

Codice è:

var React = require('react-native'); 

var { 
Text, 
View, 
StyleSheet, 
} = React; 

module.exports = React.createClass({ 
render: function(){ 
return(
    <View> 
    <Text>{this.props.titleName}</Text> 
    </View> 
); 
} 
}); 

var styles = StyleSheet.create({ 
container:{ 

}, 
text:{ 

} 
}); 

risposta

18

Importazione Reagire da reagire-native è stato deprecated in 0.25.1. Smetterà di funzionare in 0,26.

Si dovrebbe fare questo ora:

import React from 'react'; 

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

Edit: Se viene ancora warning di deprecazione dopo aver fissato il codice, probabilmente si sta utilizzando le dipendenze che non sono ancora stati aggiornati. Per correggere questi avvisi procedere come segue:

  1. Verificare se sono disponibili aggiornamenti che correggono le importazioni.
  2. Utilizzare this script per riscrivere le dipendenze per utilizzare automaticamente le importazioni corrette. Ci vorrà un po 'di tempo e riscrivere alcuni file che non hanno nulla a che fare con la reazione.
  3. Per trovare i file rimanenti che richiedono React da react-native è possibile impostare un punto di interruzione in node_modules/react-native/Libraries/ReactNative/ReactNative.js alla riga 41 in cui è attivato l'avviso.

Quando si trova una dipendenza che non è stata aggiornata è probabilmente una buona idea inviare un problema o se si ha il tempo di un PR.

+1

Ho riscontrato anche questo problema. Come troviamo la fonte dell'errore quando abbiamo ricontrollato che React viene importato da 'react'? Potrebbe essere in uno dei miei innumerevoli node_modules? Sfortunatamente gli strumenti di debug non sono più specifici. –

+2

Sì, è probabilmente in una delle tue dipendenze. Il metodo migliore che ho trovato finora è impostare un breakpoint in node_modules/react-native/Libraries/ReactNative/ReactNative.js alla riga 41 dove viene attivato l'avviso. –

+1

FYI, la codemod collegata a # 2 ora supporta una varietà se gli stili di importazione includono la destrutturazione altrove. – reergymerej

Problemi correlati