Tworzę aplikację przy użyciu React i Material-UI, dołączam również React-router. Ale pojawia się poniższy błąd (Uncaught TypeError: (0, _reactDom.ReactDOM) nie jest funkcją) kiedy uruchamiam moją aplikację.Reaktuj router z React v0.14.3
Używam React v0.14.3 i React-Router v1.0.2
BodyComponent Pisałem w innym pliku i zaimportować go do moich main.js
próbowałem ReactDOM.render ale uzyskać poniżej błędu
Błąd niezamierzony: naruszenie niezmiennicze: typ elementu jest nieprawidłowy: oczekiwano ciągu znaków (dla wbudowanych składników) lub klasy/funkcji (dla komponentów złożonych), ale otrzymano: obiekt.
Stworzyłem skrzypce na ten sam:
https://jsfiddle.net/69z2wepo/23814/
Poniżej jest mój kod: (aktualizacja Code)
'use strict';
import React from 'react';
import mui from 'material-ui';
import PhysicalView from './playground/PhysicalViewComponent';
import DataTable from './DataTableComponent';
const AppBar = require('material-ui/lib/app-bar');
require('styles//Body.sass');
const LeftNav = require('material-ui/lib/left-nav');
const MenuItem = mui.MenuItem;
const injectTapEventPlugin = require('react-tap-event-plugin');
injectTapEventPlugin();
var menuItems = [{
route: 'device-view',
text: 'Device'
}, {
type: MenuItem.Types.SUBHEADER,
text: '123'
}, {
route: 'ola',
text: 'ola'
}, {
route: 'bridges',
text: 'Bridges'
}, {
route: 'interf',
text: 'interf'
}, {
type: MenuItem.Types.LINK,
payload: 'https://github.com/callemall/material-ui',
text: 'GitHub'
}, {
text: 'Disabled',
disabled: true
}, {
type: MenuItem.Types.LINK,
payload: 'https://www.google.com',
text: 'Disabled Link',
disabled: true
}];
class BodyComponent extends React.Component {
_toggleMenu() {
this.refs.leftNav.toggle();
}
render() {
return (
< div className = "body-component" >
<header>
< AppBar
title = "vEDM"onLeftIconButtonTouchTap = {
this._toggleMenu.bind(this)
}
iconClassNameRight = "muidocs-icon-navigation-expand-more"/>
< /header>
< LeftNav
ref = "leftNav"
docked = {
false
}
//openRight = { true }
menuItems = {
menuItems
}
/>
<DataTable />
< /div>
);
}
}
BodyComponent.displayName = 'BodyComponent'
export default BodyComponent;
Main.js
import React from 'react';
import ReactDOM from 'react-dom';
import mui from 'material-ui';
import Body from './BodyComponent';
import Router from 'react-router';
import Route from 'react-router';
import createBrowserHistory from 'history/lib/createBrowserHistory';
let history = createBrowserHistory();
ReactDOM.render((
<Router history={history}>
<Route path="/" component={Body} />
</Router>
), document.getElementById('app'))
Poniżej moje zależności package.json
"dependencies": {
"history": "^1.13.1",
"lodash": "^3.10.1",
"material-ui": "^0.13.4",
"normalize.css": "^3.0.3",
"react": "^0.14.0",
"react-addons-test-utils": "^0.14.0",
"react-dom": "^0.14.0",
"react-router": "^1.0.2",
"react-tap-event-plugin": "^0.2.1",
"vis": "^4.10.0"
}
hej kiedy używam .render mogę dostać te błąd: Uncaught Error: Naruszenie niezmiennicze: typ elementu jest nieprawidłowy: oczekiwano ciągu znaków (dla wbudowanych składników) lub klasy/funkcji (dla komponentów złożonych), ale otrzymano: obiekt. –
Wygląda na to, że błąd znajduje się w dalszej części ścieżki renderowania, powinienem ponownie sprawdzić dokumenty dla React-Routera, a następnie rozebrać wszystkie komponenty. Zdobądź je po prostu, aby renderować rozpiętość, gdy to działa, a następnie dodaj ponownie swoje komponenty.Istnieją lepsze sposoby śledzenia wykresu renderowania, ale jest to najprostszy konceptualnie. –