2016-01-25 29 views
5

私は、これが純粋にReact Nativeの問題であるのか、それとも一般的なES6の問題なのか分かりません。しかし、私はこれを行うことができないことに気付いた:インポートに絶対パスを使用できませんか?

import {navBarRouteMapper} from '/src/helpers'; 

私はモジュールを解決することができないと言っているエラーを取得します。私は代わりにこれを行う必要があります:

import {navBarRouteMapper} from '../../../src/helpers'; 

フォルダの深さを追跡すると、アプリケーションの複雑さが増していくので、管理が困難になることがあります。絶対パスを使用できないのはなぜですか?

EDIT:

私は人々がバベルを追加することを推奨しているが、私はネイティブのシステムに反応汚したくない参照してください。すでに起こっているES6への移行は明らかです。私はReact Nativeの生態系に固有の解決策を望んでいました。

+1

[es6とbabel-nodeを使用してルートディレクトリからノードモジュールをインポートする]の可能な複製(http://stackoverflow.com/questions/31068) 698/importing-node-modules-from-root-directory-es6-and-babel-node)を使用します。 React NativeはBabelを使うので、あなたの答えはここにあると思います。 –

+0

これはBrowserifyで行うことができます。 – elclanrs

+0

パスは文字列であり、使用する各場所でハードコードする必要はありません。実行時にもインポートを使用することができます。 – dandavis

答えて

5

実際には、React Nativeのきれいな解決策があります。こちらをご覧ください:https://medium.com/@davidjwoody/how-to-use-absolute-paths-in-react-native-6b06ae3f65d1#.u47sl3p8x

TL; DR:

あなたは自分のsrc/helpersフォルダにpackage.jsonファイルを作成する必要があります:

{ 
    "name": "@helpers" 
} 

そして、あなたはどこからそれをインポートすることができます:

import { navBarRouteMapper } from '@helpers' 
+0

イメージの場合、これは動作せず、デバッグ目的でのみサポートされています。 – astiefel

+0

は機能しませんでした私のために –

+0

画像については、 'import image from '@ assets/images.myImage.png' 'のようなものを書かなければなりません。変数(イメージ、コンポーネントなど)を正しくエクスポートする(デフォルトであるかどうかを確認してください)。 –

関連する問題