質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Router

Routerは、異なるネットワーク同士を相互に接続するための通信機器。インターネットでのデータを自動的に振り分け、一つのインターネット回線を複数のコンピュータで使用することが可能です。DHCPによりIPアドレスを自動的に割振りすることもできます。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

459閲覧

[React router]Uncaught Error: Invalid hook call.

aiai8976

総合スコア112

Router

Routerは、異なるネットワーク同士を相互に接続するための通信機器。インターネットでのデータを自動的に振り分け、一つのインターネット回線を複数のコンピュータで使用することが可能です。DHCPによりIPアドレスを自動的に割振りすることもできます。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/09/17 01:17

編集2020/09/17 01:17

前提・実現したいこと

reactでルーティングを行なっています。
はじめhashrouterを使っていたのですが、諸事情で#が付いていないURLに変更したく色々試していましたが以下のようなエラーが出て困っています。
2の可能性が高いのかなあと思うのですが、https://reactrouter.com/web/api/Hooks/usehistoryと一緒のことをやっているので大丈夫なのかなとも思います。
わかる方がいましたら、ご教授お願いします。

発生している問題・エラーメッセージ

Uncaught Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app

該当のソースコード

packagejson

1 "react": "^16.7.0", 2 "react-dom": "^16.7.0", 3 "react-router": "^3.2.6", 4 "react-router-dom": "^5.1.2",
import { useHistory } from "react-router-dom"; export default function PersistentDrawerLeft() { let history = useHistory(); const handleDrawerOpen = () => { setOpen(true); }; const handleChange = (event) => { setAuth(event.target.checked); }; const handleMenu = (event) => { setAnchorIcon(event.currentTarget); }; const handleClose = () => { setAnchorIcon(null); }; const handleDrawerClose = () => { setOpen(false); }; const handleToSubmit = () => { history.push("/submit"); setOpen(false); }; const handleToHome = () => { history.push("/view"); setOpen(false); };

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問