2016-04-20 25 views
1

由于最新的reactjs v15.0.1,我最近已从v0.14.4迁移到Google Material UI(Material UI v0.15.0-beta.1),并且已将formsy-material-ui和formy-react包装器进行表单验证。Material UI - muiTheme.prefix不是功能问题

这是一个大的代码架构,道歉无法附加代码片段,反正我得到一个错误,这是说muiTheme.prefix is not a function

虽然我一直在下面的https://github.com/callemall/material-ui/blob/master/CHANGELOG.md

希望由材料UI更改日志文件所提供的指引,以得到一些帮助,让我知道,如果有什么需要,以更好地解释这个问题。

回答

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预计只有一个孩子,所以没有避免封装格;当然,如果你想让事情变得更清洁,你可以创建另一个AppContainer组件,但你明白了。

+0

感谢您输入约翰尼,我已经这样做,但即使如此,仍然得到同样的问题。 而我的假设是,所有的子组件都不需要用'MuiThemeProvider'来包装,因为它应该从父类继承上下文。 –

+0

您正在使用哪些组件?我在使用下拉菜单时看到这个问题:https://github.com/callemall/material-ui/issues/3756如果你也使用它,并且我知道你有很多代码,但是你可能可能尝试用其他东西替换该组件?确认或揭发这个错误与这个具体事情有关。 –

+0

我确实看到了这个问题,并且您可以看到我的+1以及:) 但这是相当古老的,似乎不会与我们的相关。 这是所有页面上接受第一个。 –

1

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

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