【问题标题】:Cannot read 'component' of undefined: Using material-ui with browserify无法读取未定义的“组件”:将 material-ui 与 browserify 一起使用
【发布时间】:2015-06-08 19:53:39
【问题描述】:

我正在使用 browserify 来管理我的依赖项,正如 material-ui 设置文档中所建议的那样。当我尝试运行我的代码时,控制台会给我以下消息:

Uncaught TypeError: Cannot read property 'component' of undefined,追溯至bundle.js:6769

在我的bundle.js文件中,第6769行是这个函数的返回语句:

    getThemeButton: function getThemeButton() {
        return this.context.muiTheme.component.button;
    },

我在这里缺少什么?我对 material-ui 和我正在使用的 material-ui 组件都有 require 语句。

我的 index.js 文件的顶部如下所示:

    var React = require('react');
    var injectTapEventPlugin = require('react-tap-event-plugin');
    var mui = require('material-ui');
    var RaisedButton = mui.RaisedButton;

    injectTapEventPlugin();

【问题讨论】:

  • 那里没有足够的代码来查看问题。您是否为组件定义了“contextTypes”?
  • 我完全错过了这一点。现在它可以工作了:-)

标签: javascript reactjs browserify


【解决方案1】:

找到隐藏在docs中的答案!

显然这是 material-ui 的必需部分(我不知道他们为什么不将它作为设置的一部分包含在内),但我需要在渲染的类中包含这个 sn-p:

childContextTypes: {
    muiTheme: React.PropTypes.object
},

getChildContext: function() {
    return {
      muiTheme: ThemeManager.getCurrentTheme()
    };
},

【讨论】:

    猜你喜欢
    • 2019-07-27
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2021-07-11
    • 2021-10-21
    • 2021-05-19
    • 1970-01-01
    相关资源
    最近更新 更多