由于最新的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
提供的指南希望得到一些帮助,让我知道,如果有什么需要更好地解释这个问题。
答案 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组件,但是你明白了。