React 0.13.3 给出 Super 表达式必须为 null 或函数,而不是对象
Posted
技术标签:
【中文标题】React 0.13.3 给出 Super 表达式必须为 null 或函数,而不是对象【英文标题】:React 0.13.3 giving Super expression must either be null or a function, not object 【发布时间】:2015-12-30 03:06:09 【问题描述】:我有这个代码
import React from 'react';
import Component from 'react';
import Bar from './Bar.es6.js';
import Chart from './Chart.es6.js';
import connect from 'react-redux';
export default class App extends Component
render()
return (
<div class="app">
<Chart width=this.props.width
height=this.props.height>
<Bar data=this.state.data
width=this.props.width
height=this.props.height>
</Bar>
</Chart>
</div>
);
;
function select(state)
return state;
export default connect(select)(App);
这给了我一个错误
Uncaught TypeError: Super expression must either be null or a function, not object
从这个问题
reactjs giving error Uncaught TypeError: Super expression must either be null or a function, not undefined
它应该在 React v0.13.x 中消失,而我有 0.13.3
发生了什么事?
【问题讨论】:
你应该同时导出类和 connect() 吗? 您只能有一个默认导出。 【参考方案1】:import Component from 'react';
将react
命名空间导入Component
。那是一个对象。与import React from 'react';
相同,相当于
var Component = require('react');
这不是在链接问题中做了什么。
你想要
class App extends React.Component
【讨论】:
所以我最初这样做是为了避免在 autoGenerateWrapperClass 错误时无法读取未定义的属性“toUpperCase”,因为这个问题***.com/questions/30643604/…,现在又回来了 即使使用第二种解决方案? 是的......虽然我通常必须从 z 语句中取出所有 import x, y 吗? 视情况而定。import a from 'foo';
导入 'foo'
s 默认 导出。 import a, b from 'foo';
导入其命名导出。
好的,当我做你做的事情时,我得到了那个错误。我不确定为什么,因为错误消息非常无用。当我尝试不使用 并使用命名空间的子组件时,我得到 React.applyMiddleware is undefined以上是关于React 0.13.3 给出 Super 表达式必须为 null 或函数,而不是对象的主要内容,如果未能解决你的问题,请参考以下文章