2017-10-27 12 views
0

私は非常に奇妙な問題に直面しており、解決策を見つけることができません。 私はこのようなコンポーネントをレンダリングしています:インポートされたコンポーネントがインポートされていても定義されていないというエラー

const Trans =() =>(
<div> 
.... 
</div>) 
export default Trans 

それから私import it as import Trans from './trans' と私はconnect (mapStateToProps, mapDispatchToProps)(Trans)使うとエラー が表示されていることYou must pass a component to the function returned by connect. Instead received undefined

+0

Transに「反応」をインポートしていますか?多分それが理由です。 – mersocarlin

答えて

1

これはおそらく循環依存関係が原因です。

最も単純な例ではsomethingElsemoduleOne.jsに宣言されている場合、それはmoduleTwo.jsに用somethingを探して行く

// moduleOne.js 

import {something} from './moduleTwo'; 

export const somethingElse = something; 

// moduleTwo.js 

import {somethingElse} from './moduleOne'; 

export const something = somethingElse; 

です。

しかし、moduleTwoは、somethingElseからmoduleOne.jsを最初に宣言する必要があります。 somethingElseはmoduleTwoを待っているmoduleOneにあるため、まだ宣言されていません。したがって、undefinedです。

あなたの設定はおそらくこれよりもやりがいが少なく複雑ですが、同じ問題になります。

circular-dependency-pluginを使用してこれらを検出して修正します。

0

それは成分(または、それはコンポーネントのように見えます)ですが、 reactも忘れずにインポートしてください。

import React from 'react' 

const Trans =() => 
    <div> 
    ... 
    </div> 

export default Trans 
+0

残念ながら私は 'react'からReactをインポートします – user7334203

+0

@ user7334203どのように 'Trans'をインポートしていますか? './trans 'からトランスをインポートするか' 'インポートするトランスをインポートする' '/トランス" – mersocarlin

+0

インポートするトランスを' ./trans ' – user7334203

-1

接続メソッドを使用している場合は、 "react-redux"パッケージを使用する必要があります。インポートしたかどうかを確認してください。

+0

import {connect}から 'react-redux'をインポートします。私はそれを輸入している – user7334203

関連する問題