2017-06-30 7 views
1

React-Nativeのプラットフォームに基づいて2つの異なるデザインを持つコンポーネントがあります:MyComponent.ios.tsxおよびMyComponent.android.tsxです。React-Nativeアプリケーション用プラットフォーム固有のios/android typescriptファイルの相対インポート

私のコンポーネントをMyView.tsxにインポートすると、それは文句を言います。

MyView.tsx(5,38):エラーTS2307: './MyComponent'モジュールが見つかりません。

私は次の私のtsconfigファイルパスを変更しようとしています

"paths": { 
    "*": ["*", "*.ios", "*.android"] 
}, 

私はまだ同じ問題を抱えているものの。

この問題の解決方法をご存知の方はいますか?あなたのTSファイルがtranspiledされたら

おかげで

+0

どのようにあなたが 'MyComponent'をインポートしていますか?次のようなものですか?import MyComponent from '../ MyComponent'; ' –

答えて

1

基本的に、このアプローチは、一つの理由のために動作しません、相対パスは「.ios」または「.android」を追加して停止するようにコンパイラのためにもうありません純粋なJSを読んでいるとき、出力はネイティブの側で反応しません。私はそれがタイピング(MyComponent.d.ts)を作成することにより、作業しまった

同じフォルダ内のファイル、例:

// This file exists for two purposes: 
// 1. Ensure that both ios and android files present identical types to importers. 
// 2. Allow consumers to import the module as if typescript understood react-native suffixes. 
import DefaultIos from './MyComponent.ios'; 
import * as ios from './MyComponent.ios'; 
import DefaultAndroid from './MyComponent.android'; 
import * as android from './MyComponent.android'; 

declare var _test: typeof ios; 
declare var _test: typeof android; 

declare var _testDefault: typeof DefaultIos; 
declare var _testDefault: typeof DefaultAndroid; 

export * from './MyComponent.ios'; 
関連する問題