材质UI - muiTheme.prefix不是函数问题

时间:2016-04-20 11:25:13

标签: reactjs material-ui formsy-material-ui formsy-react

由于最新的reactjs v15.0.1,我最近从v0.14.4迁移到Google Material UI(Material UI v0.15.0-beta.1),还升级了formsy-material-ui和formsy-react包装器形式验证。

这是一个很大的代码架构,道歉无法附加代码片段,无论如何我收到的错误是muiTheme.prefix is not a function

虽然我一直遵循材料ui更改日志文档https://github.com/callemall/material-ui/blob/master/CHANGELOG.md

提供的指南

希望得到一些帮助,让我知道,如果有什么需要更好地解释这个问题。

2 个答案:

答案 0 :(得分:1)

遇到问题,我错过了在getMuiTheme方法中传递的主题上下文lightBaseTheme,如下所示。

  getChildContext() {
    return {muiTheme: getMuiTheme(lightBaseTheme)};
  }

答案 1 :(得分:0)

我的猜测是你没有对这一突破性变化做任何事情:

  

截至目前,您需要提供有关背景的主题,请参阅:http://www.material-ui.com/#/customization/themes

所以如果你没有指定主题,材料ui现在似乎已经破裂了。您可以将整个应用程序包装在MuiThemeProvider中,然后恢复工作。

你需要这样的东西:

...
import MuiThemeProvider from "material-ui/styles/MuiThemeProvider"
import getMuiTheme from "material-ui/styles/getMuiTheme"
// import the colors wanted to customize your theme here, if you want to
import { orange500 } from "material-ui/styles/colors"
...
// customize your theme here
const muiTheme = getMuiTheme({
  palette: {
    accent1Color: orange500
  }
})
...
class MyApp extends Component {


  render() {
    return (
      <MuiThemeProvider muiTheme={muiTheme}>
        <div>
          <Header />
          <Body />
          <Footer />
        </div>
      </MuiThemeProvider>
    )
  }
}

值得注意的是,MuiThemeProvider只需要一个孩子,因此无法避免封装div;当然,如果你想让事情更清洁,你可以创建另一个AppContainer组件,但是你明白了。