Материал интерфейса - muiTheme.prefix не является проблемой функции

Недавно я перешел на Google Material UI (Material UI v0.15.0-beta.1) с v0.14.4, из-за новейших реактивов v15.0.1, а также обновил оболочку Formy-Material-UI и Formy-Reaction для проверки формы.

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

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

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

2 ответа

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

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

Я думаю, что вы ничего не сделали с этим серьезным изменением:

На данный момент вам нужно будет предоставить тему в контексте, см.: http://www.material-ui.com/

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

Другие вопросы по тегам