2016-04-20 4 views
1

Недавно я перешел на пользовательский интерфейс Google Material (Material UI v0.15.0-beta.1), начиная с v0.14.4, из-за последней реакции v15.0.1, также обновил formsy-material-ui и formsy-react обертка для проверки формы.Материал UI - muiTheme.prefix не является проблемой функции

Это большая архитектура кода, извинения не смогли прикрепить фрагмент кода, так или иначе я получаю сообщение об ошибке muiTheme.prefix is not a function.

Хотя я следовал за указаниями материала Ui журнала изменений документа на https://github.com/callemall/material-ui/blob/master/CHANGELOG.md

Надежда, чтобы получить некоторую помощь, дайте мне знать, если что-нибудь нужно, чтобы объяснить этот вопрос лучше.

ответ

0

Моя догадка бы вы не делали ничего об этом разрывном изменении:

В настоящее время вам нужно будет предоставить тему по контексту, см: http://www.material-ui.com/#/customization/themes

Так материалоемкость щий кажется, сломается сейчас, если вы не укажете тему. Возможно, вы могли бы обернуть все ваше приложение внутри 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, если хотите, чтобы все было чище, но вы поняли эту идею.

+0

Спасибо за вход Джонни, я уже сделал это, но даже тогда все еще получаю ту же проблему. И, как я полагаю, все компоненты-дети не должны быть обернуты «MuiThemeProvider», поскольку он должен наследовать контекст от родителя. –

+0

Какие компоненты вы используете? Я вижу эту открытую проблему при использовании выпадающего меню: https://github.com/callemall/material-ui/issues/3756 Если вы используете его также, и я понимаю, что у вас много кода, но вы могли бы попробуйте заменить этот компонент чем-то другим? Чтобы подтвердить или опровергнуть эту ошибку, это имеет какое-то отношение к этому вопросу. –

+0

Я действительно видел эту проблему, и вы тоже могли видеть мой +1 :) Но это довольно старый, похоже, не был бы связан с нашим. Это происходит на всех страницах, которые принимают первый. –

1

Попал в проблему, мне не хватало контекста темы lightBaseTheme, который будет передан в методе getMuiTheme, как показано ниже.

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

 Смежные вопросы

  • Нет связанных вопросов^_^