Javascript react route redux:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件)
index.jsJavascript react route redux:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),javascript,reactjs,redux,react-redux,react-router-redux,Javascript,Reactjs,Redux,React Redux,React Router Redux,index.js import React from 'react'; import ReactDOM from 'react-dom'; import { createStore, applyMiddleware } from 'redux'; import { Provider } from 'react-redux'; import thunk from 'redux-thunk'; import createHistory from 'history/createBrowserHisto
import React from 'react';
import ReactDOM from 'react-dom';
import { createStore, applyMiddleware } from 'redux';
import { Provider } from 'react-redux';
import thunk from 'redux-thunk';
import createHistory from 'history/createBrowserHistory';
import { Route } from 'react-router';
import reducer from './reducers';
import App from './components/App';
import { ConnectedRouter, routerMiddleware } from 'react-router-redux';
const history = createHistory();
const store = createStore(
reducer,
applyMiddleware(thunk),
applyMiddleware(routerMiddleware(history))
)
ReactDOM.render(
<Provider store={store}>
<ConnectedRouter history={history}>
<div>
<Route exact path="/" component={App}/>
</div>
</ConnectedRouter>
</Provider>,
document.getElementById('root')
);
有什么想法吗?谢谢
更新
import React from 'react';
import { Link } from 'react-router-dom';
export default class Header extends React.Component {
render() {
return (
<nav>
<Link to="/" activeClassName="active">Home</Link>
</nav>
)
}
};
从“React”导入React;
从'react router dom'导入{Link};
导出默认类标头扩展React.Component{
render(){
返回(
家
)
}
};
您的路由器版本是什么?如果是react router 4,则不再使用IndexLink。此外,ConnectedRouter
仅在发行版和更高版本中可用。谢谢,我解决了导入问题。您解决了这个问题吗?无论何时使用ConnectedRouter
@Hassan,我都会遇到同样的问题。请阅读我的更新。更新中的“我的代码”工作正常(使用了Link
而不是IndexLink
)。
import React, { Component } from 'react';
import { IndexLink } from 'react-router';
export default class Header extends Component {
render() {
return (
<nav>
<IndexLink to="/" activeClassName="active">Home</IndexLink>
</nav>
)
}
};
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in. Check your code at Header.js:8.
in Header (at App.js:9)
in div (at App.js:8)
in App (created by Route)
in Route (at index.js:23)
in div (at index.js:22)
in Router (created by ConnectedRouter)
in ConnectedRouter (at index.js:21)
in Provider (at index.js:20) bundle.js:11913:10
Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in. Check the render method of `Header`. bundle.js:11472:16
import React from 'react';
import { Link } from 'react-router-dom';
export default class Header extends React.Component {
render() {
return (
<nav>
<Link to="/" activeClassName="active">Home</Link>
</nav>
)
}
};