チュートリアルの後に簡単なReact-Redux
アプリを作成し始めました。しかしそれ以来、Reactのルーターシステムは変更されており、ルートを正しく使用する方法がわかりません。React-Reduxアプリのルーティング方法は?
マイindex.js
ファイルは、から構成されています
import App from "./containers/App"
render(
<Provider store={store}>
<App />
</Provider>
,
window.document.getElementById('app'));
そしてcontainers/App.js
...
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
import {Header} from '../components/Header';
...
class App extends React.Component {
render() {
return (
<Router>
<div className="container">
<Header/>
<Main changeUsername={() => this.props.setName("Anna")}/>
<User username={this.props.user.name}/>
</div>
</Router>
);
}
}
const mapStateToProps = (state) => {
return {
user: state.user,
math: state.math
};
};
const mapDispatchToProps = (dispatch) => {
return {
setName: (name) => {
dispatch(setName(name));
},
};
};
export default connect(mapStateToProps, mapDispatchToProps)(App)
と問題のコンポーネントから来て/ Header.js
import { Link} from 'react-router-dom'
const Header = (props) => {
return (
<nav className="navbar navbar-expand-lg navbar-light bg-light">
<Link className="nav-link" to="/">Spider</Link>
<button className="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span className="navbar-toggler-icon"></span>
</button>
<div className="collapse navbar-collapse" id="navbarSupportedContent">
<ul className="navbar-nav mr-auto">
<li className="nav-item" activeClassName={"active"}>
<Link className="nav-link" to="/home">Home</Link>
</li>
<li className="nav-item" activeClassName={"active"}>
<Link className="nav-link" to="{user/${user.id}}">User</Link>
</li>
</ul>
</div>
</nav>
);
}
export default Header
コンソールがエラーを示しています。
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, or you might have mixed up default and named imports.
Check the render method of `App`.
in App (created by Connect(App))
in Connect(App)
in Provider
どうすれば修正できますか?ありがとう
また、もしあなたがそれに問題に直面しているならば、あなたの 'ルート'をどのように設定したかを加えてください。 –
ありがとう..それは輸出の問題でした。私は混乱していますか?反応ルータまたは反応ルータドームを使用するはずですか? – ytsejam
あなたは2つの組み合わせを使用する必要があります –