导入的组件尽管已导入,但仍未定义错误

时间:2017-10-27 09:35:19

标签: javascript reactjs import

我面临一个非常奇怪的问题,我无法找到解决方案。 我正在渲染这样的组件:

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

3 个答案:

答案 0 :(得分:1)

这可能是由循环依赖引起的。

最简单的例子是

// moduleOne.js

import {something} from './moduleTwo';

export const somethingElse = something;

// moduleTwo.js

import {somethingElse} from './moduleOne';

export const something = somethingElse;

somethingElse中声明moduleOne.js后,它会在something中寻找moduleTwo.js

moduleTwo需要somethingElse moduleOne.js首先声明。 somethingElse尚未宣布,因为它位于moduleOne中,等待moduleTwo,因此它是undefined

你的设置可能不那么愚蠢,而且比这更复杂,但也是同样的问题。

我们使用circular-dependency-plugin来检测和修复这些内容。

答案 1 :(得分:0)

虽然它是一个组件(或看起来像一个组件),但也不要忘记导入react

import React from 'react'

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

export default Trans

答案 2 :(得分:-1)

如果使用connect方法,则必须使用“react-redux”包。请检查您是否已导入