У меня есть decorator
, который применяет функцию рендеринга к прототипу компонента реакции, однако, когда я запускаю приложение в браузере, я получаю следующую ошибку.
Warning: App(...): No 'render' method found on the returned component instance: you may have forgotten to define 'render'.
Вот код декоратора
export function App(setup) {
return function(target) {
target.prototype.render = () => (
<MuiThemeProvider muiTheme={getMuiTheme(setup.config.theme)}>
<IntlProvider locale={setup.config.locale}>
<Provider
store={setup.config.state.store ?
setup.config.state.store
:
initializeRedux(setup.config.state.reducers, setup.config.state.initialState)}
>
<Router>
<div>
{setup.pages.map((page, i) =>
<Route key={i} {...page} />
)}
{setup.render ? setup.render() : ""}
</div>
</Router>
</Provider>
</IntlProvider>
</MuiThemeProvider>
)
return target;
}
}
И реактивный компонент
@DimApp({
pages: [
{ path: '/', component: HomePage, children: [] }
],
config: {
theme,
locale: 'en',
state: {
store
}
}
})
export default class App extends Component {
constructor(props) {
super(props);
}
}
Спасибо, это было проблемой. Я бы подумал, что декораторы будут включены по умолчанию в метеоре. Думаю нет :)