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

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

新規登録して質問してみよう
ただいま回答率
85.35%
React.js

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

Q&A

3回答

1857閲覧

コンポーネントが読み込めない

barakichi

総合スコア0

React.js

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

0グッド

0クリップ

投稿2021/10/14 11:54

編集2021/10/14 11:59

前提・実現したいこと

ReactでグローバルStateの学習をしているのですが、読み込めないコンポーネントがあり、どこがいけないのかわからないです。

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

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, or you might have mixed up default and named imports. Check the render method of `AdminFlagProvider`.
**AdminFlagProvider.jsx** import { createContext } from "react"; export const AdminFlagContext = createContext({}); export const AdminFlagProvider = props => { const { children } = props; const sampleObj = { sampleValue : "テスト"}; return( <AdminFlagContext.provider> {children} </AdminFlagContext.provider> ); }; ------------------------------------------------------------------------------------ **index.js** import reactDOM from "react-dom"; import { App } from "./App"; import { AdminFlagProvider } from "./components/providers/AdminFlagProvider"; reactDOM.render( <AdminFlagProvider> <App /> </AdminFlagProvider>, document.getElementById("root"));

試したこと

どこを見直してもあってると思うのですが、この二つ以外に原因があるのでしょうか?

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

じゃけぇさんのReact実践の教科書186ページに関してです。

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

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

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

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

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

guest

回答3

0

AdminFlagContext.provider の provider の先頭は小文字じゃなくて大文字の P ですね。
あと、たぶん value={sampleObj} が必要では。

diff

1 return( 2- <AdminFlagContext.provider> 3+ <AdminFlagContext.Provider value={sampleObj}> 4 {children} 5- </AdminFlagContext.provider> 6+ </AdminFlagContext.Provider> 7 );

投稿2021/10/14 20:54

hoshi-takanori

総合スコア7901

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

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

0

どういうわけか、export constと書くと、正しくエクスポートされないことがあります。

const AdminFlagProvider = (後略)export { AdminFlagProvider }を分けて書いてみたらどうなりますでしょうか?

投稿2021/10/14 12:40

maisumakun

総合スコア146018

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

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

barakichi

2021/10/14 12:49

アドバイスありがとうございます。 ただエラーメッセージは変わらずのままです。 どうすれば良いんでしょうか、、、
maisumakun

2021/10/14 12:50

ファイルパスは合っていますか?
barakichi

2021/10/14 12:53

ファイルパスも間違いないです。
maisumakun

2021/10/14 12:53 編集

JSXなどを使うための環境設定はどのように行いましたか?
barakichi

2021/10/14 12:59

まだ初心者でコンパイルがよく分からず調べてみたんですが、 npm run buildauto というようなコマンドはまだしたことがなく、やらずにきてしまったのですが、これをする必要があるということなのでしょうか? 見当違いな回答だったらすいません!
maisumakun

2021/10/14 13:11

何かしらのツールがなければ、JSXすらブラウザには処理できません。 > これをする必要があるということなのでしょうか? コマンドを直接打つかどうかはともかく、何もなければJSXで書いたReactは動きません。
barakichi

2021/10/14 13:18

setStateなど他のことは問題なく作動していました! コンパイルに関してはどこをお伝えすればわかりやすいでしょうか?
maisumakun

2021/10/14 13:27

何のツールを使っている感じでしょうか? (「それすらわからない」という状況がわからないのですが…Webサイト上で実行するようなサービスを使っていたりしますか?)
barakichi

2021/10/14 13:31

VScodeを使っています。
maisumakun

2021/10/14 13:36

VSCodeに何かプラグインを入れた感じですか?
barakichi

2021/10/14 13:48

特に入れていないです。
maisumakun

2021/10/14 14:03

プロジェクト作成はどのような方法で行いましたか?
barakichi

2021/10/14 15:11 編集

MACのターミナルから npx create-react-appでプロジェクトを作りまして、 npm start で立ち上げて描き始めたという感じです。
guest

0

google翻訳

Error: 要素タイプが無効です:文字列(組み込みコンポーネントの場合)またはクラス/関数(複合コンポーネントの場合)が必要ですが、取得されました:未定義。コンポーネントが定義されているファイルからコンポーネントをエクスポートするのを忘れたか、デフォルトのインポートと名前付きのインポートを混同している可能性があります

とりあえず、エラーが出てるところの変数のナカミを片っ端からチェックしてみては

投稿2021/10/14 12:19

編集2021/10/14 12:21
y_waiwai

総合スコア88042

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

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

barakichi

2021/10/14 12:34

エラー該当の変数周りにおかしいところがない場合はモジュールなどに異常があるということも考えられるのでしょうか?
y_waiwai

2021/10/14 12:39

変数がundefined.とおっしゃってますけど、それを持っておかしいところがないとされるなら、なにもいうことはありません。 がんばってください。
barakichi

2021/10/14 12:43

僕にはおかしいところが気づけないのですが、詳しく教えて頂けないですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問