2017-05-04 18 views
0

これは些細なことですが、私はそれについてのドキュメントを見つけることができません。アプリをモジュールに分割するにはどうすればよいですか?

私の(非常に基本的な)アプリケーションをUIモジュールと非UIモジュールに分割したいと考えています。だから私は、この作成した:

/* datahandler.js */ 

export class DataHandler {                   

    getSuppliers(search,limit,offset) {                 
    let params = { method: 'GET',                  
        headers: { 'Accept': 'application/json' },           
        body: null };                  

    let url = 'http://url.for.data.service.goes.here';         

    return fetch(`${url}?params=${search},${limit},${offset}`, params)        
     .then((response) => response.json())               
     .catch((error) => { console.error("fetch caught:" + error); });        

    }                         

}  

をしかし、それが認識されるためにモジュールを配置する場所を私は知りません。私はトップレベルでそれを入れて、import {DataHandler} from 'datahandler';でそれを呼び出す場合は、私が手:

error: bundling: UnableToResolveError: Unable to resolve module `datahandler` from `/home/andy/andy/try_react/try1/index.android.js`: Module does not exist in the module map or in these directories: 
    /home/andy/andy/try_react/try1/node_modules 

This might be related to https://github.com/facebook/react-native/issues/4968 
To resolve try the following: 
    1. Clear watchman watches: `watchman watch-del-all`. 
    2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`. 
    3. Reset packager cache: `rm -fr $TMPDIR/react-*` or `npm start --reset-cache`. 
    at UnableToResolveError (/home/andy/andy/try_react/try1/node_modules/react-native/packager/src/node-haste/DependencyGraph/ResolutionRequest.js:488:5) 
    at p.catch.error (/home/andy/andy/try_react/try1/node_modules/react-native/packager/src/node-haste/DependencyGraph/ResolutionRequest.js:366:19) 
    at process._tickCallback (internal/process/next_tick.js:109:7) 
Bundling `index.android.js` 0.0% (0/1), failed. 

私はnode_modulesディレクトリにファイルをドロップすることができように思えるが、私はそれを行うにはしたくありません。ドキュメントパスには何も表示されませんが、モジュールパスやインクルードするファイルのマニフェストがありますか?


ちなみに私はreact-native new-library --name="datahandler"を試しましたが、それはやったすべてのライブラリのディレクトリを作成することでした、そしてないと約束したテンプレート(ライブラリ全体のために?私はとにかく、私はそれを望んでいないかなり確信しています)。

答えて

0

それはちょうど

import (DataHandler} from './datandler'; 

私は./に欠けていたのです。

しかし、これが文書化されている場所はまだ見つかりません。

0

通常、ファイルのパスを使用して自分のクラスを取得します。あなたのモジュールがその

export default class DataHandler { 
... 
} 

と、ページ内

import DataHandler from '../modules/datahandler' 
ようになり

rootDir 
.. pages 
... page.jsx 
.. modules 
... datahandler.js 

関連する問題