2016-12-04 4 views

答えて

3

私が知っているES6にはネストされた破壊がありません。私は、共通の正確リンクファイルの相対パスを知らない - :あなたは、共通のフォルダ内index.jsファイルを作成し、コードの下に

import Link from './Link'; 
module.exports = { 
    Link: Link 
} 

(注を追加することができます

import { components as C } from '../../common'; 

// then later 

<C.Link>foobar</C.Link> 
+1

それとも単にを使用してリンクをインポートすることができます...'。エイリアス 'C'は必須ではありません。 – Leo

+0

このようなグローバルな 'Link'をOPのコードと同等にすることは可能ですか? – qxz

+0

もちろん、エイリアスは必要ありませんが、大文字()は機能しません。だから、あなたは 'コンポーネント{コンポーネントをコンポーネント}としてインポートする必要があります... 'http://stackoverflow.com/questions/30373343/reactjs-component-names-must-begin-with-capital-letters – Chris

2

CommonModule = { 
    components: { 
    Link: {...} 
    ... 
    } 
    ... 
} 

そして、あなたはそれがその構文を使用してワンライナーでそうすることはできません直接、その後、逆参照CommonModule.components.Linkしたいと思います。

現在、深いネストされたプロパティをimportステートメントを使用して1行に参照解除する方法はありません。the syntax only allows for direct children of the module to be dereferencedです。

あなたの代わりにrequireを使用することができます場合は、使用することができます:

const Link = require('../../common').components.Link; 

をあなたは、あなたが使用することができ、ワンライナー内にもCommonModuleへの参照を保持したい場合:

const {components:{Link}} = CommonModule = require('../../common'); 

しかし、この時点で、簡潔さが混乱につながる場所に到達しています。あなたは2行で何を持っているかは完全に理解でき、簡単です。少ないコードで常に良いとは限りません。

0

:あなたのような何かができますフォルダ)

次にあなたが `インポート{}コンポーネントから、

import {Link} from '../../common'; 
関連する問題