【问题标题】:I have this error : Uncaught TypeError: Super expression must either be null or a function, not object我有这个错误: Uncaught TypeError: Super expression must be null or a function, not object
【发布时间】:2016-09-06 22:36:03
【问题描述】:

当我在浏览器下面运行代码时:

Uncaught TypeError: Super expression must be null or a function, not undefined

未捕获的类型错误:无法读取 null 的属性“__reactInternalInstance$uuzyb025gr28cqm0v65ka9k9”

我使用最新的 reactjs 和材料 ui,我的 package.json 文件中有这个:

"react": "^15.3.1",
"react-dom": "^15.3.1",
"react-router": "^2.7.0" 
"material-ui": "^0.15.4"
...

代码是:

import React from 'react';
import {Drawer, MenuItem} from 'material-ui';
import {List, ListItem, MakeSelectable} from 'material-ui/List';
import Subheader from 'material-ui/Subheader';
import Avatar from 'material-ui/Avatar';

class Test extends React.Component {

    /**
     * Class constructor.
     */
    constructor() {
        super();
    }

    /**
     * Render the component.
     */
    render() {
        return (
            <div>
                <Drawer open={false} width="180px">
                    <MakeSelectable defaultValue={3}>
                    <Subheader>Selectable Contacts</Subheader>
                        <ListItem value={1} primaryText="Brendan Lim" leftAvatar={<Avatar src="/images/obenbasic.png" />}
                          nestedItems={[<ListItem value={2} primaryText="Grace Ng" leftAvatar={<Avatar src="/images/obenbasic.png" />} />,]}/>
                        <ListItem value={3} primaryText="Kerem Suer" leftAvatar={<Avatar src="/images/obenbasic.png" />}/>
                        <ListItem value={4} primaryText="Eric Hoffman" leftAvatar={<Avatar src="/images/obenbasic.png" />} />
                        <ListItem value={5} primaryText="Raquel Parrado" leftAvatar={<Avatar src="/images/obenbasic.png" />} />
                  </MakeSelectable>
               </Drawer>     
            </div>
        );
    }
}
export default Test;

有人可以帮我解决这个问题吗?

【问题讨论】:

  • @AndrewL。不,是React.Component
  • OP - 在这种情况下,您甚至不需要构造函数。摆脱它。
  • 我做了以下更改 React.ComponentReact.component 我仍然有以下错误:app.js:63972 Uncaught TypeError: Super expression must be null or a function, not undefined
  • 告诉你使用React.component的评论是错误的。将其切换回来,然后删除您的构造函数。
  • 也许这篇文章中的某些内容可能会有所帮助? stackoverflow.com/questions/30116430/…

标签: reactjs react-native material-ui


【解决方案1】:

MakeSelectable 是一个高阶组件。它不能像组件一样使用。它将一个组件作为第一个参数。例如:

import React from 'react';
import {List, ListItem, MakeSelectable} from 'material-ui/List';

const SelectableList = MakeSelectable(List);

您可以查看https://github.com/callemall/material-ui/blob/v0.15.4/docs/src/app/components/pages/components/List/ExampleSelectable.js 以获得完整的工作示例。

P.S MakeSelectable 在 master 分支上重命名为 makeSelectable,以更好地与 React 社区约定保持一致。

【讨论】:

    猜你喜欢
    • 2015-07-18
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 2019-02-25
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多