我有点新的反应和减少,但取得了很大的进步。 我正在使用redux connect将状态映射到props。在我遇到这种情况之前,我的工作就像魅力一样:
父组件正在使用mapStateToProps,以下是它的源代码:
import React from 'react';
import { connect } from 'react-redux'
import { NestedComponent } from './NestedComponent'
class ParentElement extends React.Component {
render() {
return (
<div className="App">
<NestedComponent/>
</div>
);
}
}
const mapStateToProps = state => {
const { questions } = state
return {
questions
}
}
ParentElement.contextTypes = {
router: React.PropTypes.object.isRequired
}
export default connect(mapStateToProps)(ParentElement)
以下是嵌套元素的代码:
import React from 'react';
import { connect } from 'react-redux'
class NestedComponent extends React.Component {
render() {
return (
<div> I am nested</div>
);
}
};
const mapStateToProps = state => {
const { questions } = state
return {
questions
}
}
NestedComponent.contextTypes = {
router: React.PropTypes.object.isRequired
}
export default connect(mapStateToProps)(NestedComponent)
当我尝试显示父元素时,我收到此错误:
警告:React.createElement:type不应为null,未定义, 布尔值或数字。它应该是一个字符串(对于DOM元素)或a ReactClass(用于复合组件)。检查渲染方法
ParentElement
。
我错过了什么/做错了什么?
答案 0 :(得分:2)
像这样导入头文件: -
import NestedComponent from './NestedComponent'
没有牙套。
当一个类作为默认导出时,它导入时没有大括号,因为文件中只有一个默认类,但是当没有默认导出类时,你必须用大括号导入它,因为它可以有多个在文件中包含导出关键字的类(es6约定)。