I develop React components using Material-UI:
This works fine
MainView.js
import React, { Component } from 'react';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import { List, ListItem } from 'material-ui/List';
class MainView extends Component {
render() {
return (
<MuiThemeProvider>
<List>
<ListItem primaryText="item 1" />
<ListItem primaryText="item 2" />
<ListItem primaryText="item 3" />
</List>
</MuiThemeProvider>
);
}
}
export default MainView;
but when I move <List> to another component
MainView.js
import React, { Component } from 'react';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import MyListView from './MyListView';
// this import was removed as unused as <List> moved to MyListView:
// import { List, ListItem } from 'material-ui/List';
class MainView extends Component {
render() {
return (
<MuiThemeProvider>
<MyListView />
</MuiThemeProvider>
);
}
}
MyListView.js
import React, { Component } from 'react';
import { List, ListItem } from 'material-ui/List';
class MyListView extends Component {
render() {
return (
<List>
<ListItem primaryText="item 1" />
<ListItem primaryText="item 2" />
<ListItem primaryText="item 3" />
</List>
);
}
}
export default MyListView;
in this case I receive this:
Uncaught Invariant Violation: removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component's `render` method, or you have multiple copies of React loaded (details: link).
main.js
ReactDOM.render((
<Provider store={store}>
<Router history={hashHistory}>
<Route path="/" component={App} />
<Route path="/test" component={MainView} />
</Router>
</Provider>
), document.getElementById('root'));
Any suggestion to escape this? Thank you!
importstatement inMainView.js? - Alexandr Lazarev