不変量違反。<ルーター>の外側で<スイッチ>を使用してはならない
2023-07-30 08:15:21
質問
私は解決する方法がわからない問題があります、私はnpmのテストを実行するときにこのエラーが発生します。
不変量違反です。あなたは
<Switch>
の外側で<Router>
何が問題で、どうすれば解決できるのでしょうか?私が実行するテストは、reactに付属する標準のapp.test.jsです。
class App extends Component {
render() {
return (
<div className = 'app'>
<nav>
<ul>
<li><Link exact activeClassName="current" to='/'>Home</Link></li>
<li><Link exact activeClassName="current" to='/TicTacToe'>TicTacToe</Link></li>
<li><Link exact activeClassName="current" to='/NumGame'>Quick Maths</Link></li>
<li><Link exact activeClassName="current" to='/HighScore'>Highscore</Link></li>
<li><Link exact activeClassName="current" to='/Profile'>Profile</Link></li>
<li><Link exact activeClassName="current" to='/Login'>Sign out</Link></li>
</ul>
</nav>
<Switch>
<Route exact path='/' component={Home}></Route>
<Route path='/TicTacToe' component={TicTacToe}></Route>
<Route path='/NumGame' component={NumberGame}></Route>
<Route path='/HighScore' component={HighScore}></Route>
<Route path='/Profile' component={Profile}></Route>
<Route path='/Login' component={SignOut1}></Route>
</Switch>
</div>
);
}
};
どのように解決するのですか?
エラーは正しいです。この場合
Switch
を
BrowserRouter
のような他の選択肢もあります。
HashRouter
,
MemoryRouter
. これは
BrowserRouter
と代替はすべてのルータコンポーネントに共通の低レベルインターフェースであり、HTML 5 の
history
API を使用し、ルート間を行き来するためにこれが必要です。
むしろこれをやってみてください
import { BrowserRouter, Switch, Route } from 'react-router-dom';
そして、すべてをこのようにラップします。
<BrowserRouter>
<Switch>
//your routes here
</Switch>
</BrowserRouter>
関連
-
[解決済み】 Uncaught Error: Invariant Violation: 解決済み】 Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object.
-
[解決済み】 不変量違反。_registerComponent(...)。対象コンテナがDOM要素でない
-
[解決済み] 正規表現で変数を使うには?
-
[解決済み] JavaScriptで二重引用符と単一引用符はいつ使うべきですか?
-
[解決済み] varキーワードの目的と、どのような場合に使用する(または省略する)べきですか?
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] encodeURI / encodeURIComponentの代わりにescapeを使用するのはどのような場合ですか?
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
-
[解決済み] React-Routerとアクティブリンク?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] TypeScriptのdeclare classとinterfaceの違いとは?
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする