2017-10-06 6 views
0

Bonjour, J'ai été responsable d'un ancien projet iOS React-Native et j'ai besoin de mettre à niveau React-Native de 0.25.1 vers 0.48.0 mais je rencontre beaucoup de problèmes de compilateur et ne peut pas comprendre comment mettre à jour le code.React Les importations natives ne fonctionnent pas après la mise à niveau

J'ai un fichier index.ios.js qui ressemble à ceci:

var ReactNative = require('react-native'); 
var ResumeIns = require('./resume_ins_controller'); 
ReactNative.AppRegistry.registerComponent('ResumeInsController',() => ResumeIns.Navigation); 

A resume_ins_controller.js dans le dossier racine qui ressemble à ceci:

var React = require('react'); 
var EntryManager = require('./entry_manager.js'); 

class ResumeInsNavigation extends React.Component { 
    //.... 
} 

et un entry_manager.js dans le dossier racine qui ressemble à ceci :

class EntryManager { 
    //.... 
} 
module.exports = EntryManager; 

Ce code travaillé OK avant la mise à niveau, mais maintenant je reçois cette erreur:

Super expression must either be null or a function, not undefined

et les points de trace de pile à cette ligne:

module.exports = EntryManager;

Est-ce que quelqu'un sait comment obtenir ce code de travail pour Réagir-Native 0.48?

enter image description here

Répondre

1

Il y a eu une tonne de changements depuis 0.25.1. Savoir comment les mises à jour douloureuses peuvent obtenir, je vous suggère soit:

  1. Dans le cas d'une application très complexe: pour mettre à jour la version RN par la version avec l'aide de release notes et rn-diff si nécessaire.
  2. Dans le cas d'une application assez simple: pour démarrer un nouveau projet RN à partir de zéro, et déplacer la logique de l'application là-bas.

De toute façon ce serait une bonne idée de passer aux importations de ES2015 pour plus de clarté sur le nom vs les importations par défaut que la question que vous décrivez est probablement causé par la façon dont les choses sont importées, voir v0.25.1 deprecations + un lien vers codemod qui peut aider.

Bonne chance!