我面临一个非常奇怪的问题,我无法找到解决方案。 我正在渲染这样的组件:
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 :(得分: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”包。请检查您是否已导入