2016-04-20 8 views
1

Ich habe vor kurzem auf Google Material UI (Material UI v0.15.0-beta.1) von v0.14.4 migriert, aufgrund der letzten reactjs v15.0.1, haben auch aktualisiert formsy-material-ui und formsy-react-Wrapper für Formularvalidierungen.Material UI - muiTheme.prefix ist keine Funktion Problem

Es ist eine große Code-Architektur, Entschuldigung konnte das Code-Snippet nicht anhängen, jedenfalls bekomme ich einen Fehler, der muiTheme.prefix is not a function sagt.

Obwohl ich die Richtlinien durch das Material ui Änderungsprotokoll Dokument https://github.com/callemall/material-ui/blob/master/CHANGELOG.md

Hoffnung auf etwas Hilfe zu bekommen, lassen Sie mich wissen, zur Verfügung gestellt verfolgt haben, wenn etwas besser, das Problem zu erklären brauchte.

Antwort

0

Meine Vermutung würden Sie etwas über diese brechende Änderung tun nicht sein:

Ab sofort müssen Sie Thema auf Kontext, siehe: http://www.material-ui.com/#/customization/themes

So Material-ui scheint jetzt zu brechen, wenn Sie das Thema nicht angeben. Sie könnten wahrscheinlich Ihre gesamte App in den MuiThemeProvider einbinden und wieder zum Laufen bringen.

Sie müssen so etwas wie:

... 
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> 
    ) 
    } 
} 

Eine Sache zu achten ist, dass MuiThemeProvider nur ein Kind erwartet, so dass es nicht zu vermeiden, dass Einkapselung div; Sie könnten natürlich eine andere AppContainer-Komponente erstellen, wenn Sie möchten, dass die Dinge sauberer sind, aber Sie bekommen die Idee.

+0

Danke für die Eingabe Johnny, habe ich schon, aber auch dann immer noch das gleiche Problem. Und meine Annahme ist, müssen alle Kinder-Komponenten nicht mit 'MuiThemeProvider' umwickelt werden, da es den Kontext von Eltern erben soll. –

+0

Welche Komponenten verwenden Sie? Ich sehe dieses offene Problem bei der Verwendung des Dropdown-Menüs: https://github.com/callemall/material-ui/issues/3756 Wenn Sie es auch verwenden, und ich verstehe, dass Sie eine Menge Code haben, aber könnten Sie möglicherweise Versuchen Sie, diese Komponente durch etwas anderes zu ersetzen? Diesen Fehler zu bestätigen oder zu entlarven, hat etwas damit zu tun. –

+0

Ich sah das Problem, und Sie könnten meine +1 auch sehen :) Aber das ist ziemlich alt, scheint nicht mit unserem verwandt sein. Es kommt auf allen Seiten, die erste zu akzeptieren. –

1

Bekam das Problem, mir fehlte das Thema Kontext lightBaseTheme in GetMuiTheme-Methode wie unten angegeben übergeben werden.

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