2016-05-05 8 views
6

誰もがこの警告の原因を知っていますか?ReactNative.createClassは廃止されました。代わりにReact.createClassを「React」パッケージから使用してください

別の警告:ReactNative.createElementは推奨されていません。代わりに "react"パッケージのReact.createElementを使用してください。

コードがある:反応-ネイティブからリアクトインポート

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:{ 

} 
}); 

答えて

18

deprecated in 0.25.1をされています。それは0.26で動作を停止します。

あなたは今、この作業を行う必要があります。

import React from 'react'; 

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

編集:あなたはまだあなたのコードを修正した後、非推奨の警告を取得した場合、あなたはおそらくまだ更新されていない依存関係を使用しています。これらの警告を修正するには、次の操作を行います。

  1. インポートを修正するアップデートがあるかどうかを確認します。
  2. this scriptを使用して、依存関係を書き換えて、正しいインポートを自動的に使用します。それはかなり時間がかかり、反応とは何の関係もないファイルを書き直すでしょう。 jscodeshift -t transform.js PATH_TO_YOUR_PROJECT/node_modules/
  3. react-nativeからのReactが必要な残りのファイルを見つけるには、41行目のnode_modules/react-native/Libraries/ReactNative/ReactNative.jsに警告がトリガーされるブレークポイントを設定します。

更新されていない依存関係が見つかった場合は、問題を提出するか、PRの時間がある場合は、おそらく良い考えです。

+1

私もこの問題を抱えています。私たちが二重チェックしたときにエラーの原因を見つけるにはどうすればよいですか?反応が「反応」からインポートされていますか?それは私の無数のnode_modulesの1つにありますか?残念ながら、デバッグツールはそれほど具体的ではありません。 –

+2

はい、おそらくあなたの依存関係の1つにあります。私が今までに見つけた最良の方法は、警告がトリガーされる41行目のnode_modules/react-native/Libraries/ReactNative/ReactNative.jsにブレークポイントを設定することです。 –

+1

FYI、#2にリンクされているコード・コードは、他の場所での構造解除を含むインポート・スタイルの場合、様々な機能をサポートするようになりました。 – reergymerej

関連する問題