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

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

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

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

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

Q&A

解決済

1回答

1723閲覧

React is not defined で、Reactのimportは必須なのでしょうか?

HALUO

総合スコア28

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

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

0グッド

0クリップ

投稿2021/12/26 02:50

React16→17へアップデートしたのですが、必要なコンポーネントのみimportするような変更があったように記憶しています。
軽量化のためReact本体のimportは削除したのですが、React is not definedになります。
VScode上でも、'React' が宣言されていますが、その値が読み取られることはありません。 となります。

全てのファイルにimportすれば良いのですが気になりまして、ご存知の方がおりましたらご教授願います。

import { useContext, useEffect, FC, ReactNode } from "react"; import React, { useContext, useEffect, FC, ReactNode } from "react";                 ↑              必須??

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

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

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

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

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

hoshi-takanori

2021/12/26 05:42

import React は不要なはずですが、React is not defined というエラーは、何をした時に、どの行に対して出るのでしょうか?
HALUO

2021/12/27 01:32 編集

ご回答ありがとうございます。 Reactをimportしただけでは無理でした・・・ レンダリング時にMobxのObserverを使う箇所でエラーになっているようです。 mobxを5→6、mobx-reactを6→7アップデートしたのですが、アップデート前は大丈夫でしたのでObserverの使い方が変わったのかもしれません。 エラー箇所 ``` const PinnedStream: FC<{}> = () => { const store = useContext(StoreContext); const { room } = store; return ( <Observer> {() => { if (room.pinnedStream === null) { エラー箇所→ return <></>; } return <Video stream={room.pinnedStream} isVideoOnly={true} />; }} </Observer> ); }; ``` エラー内容 ``` Uncaught ReferenceError: React is not defined at pinned-stream.tsx:16 at useObserver.js:115 at trackDerivedFunction (mobx.esm.js:1793) at Reaction.track (mobx.esm.js:2337) at useObserver (useObserver.js:113) at ObserverComponent (ObserverComponent.js:8) at renderWithHooks (react-dom.development.js:14985) at mountIndeterminateComponent (react-dom.development.js:17811) at beginWork (react-dom.development.js:19049) at HTMLUnknownElement.callCallback (react-dom.development.js:3945) ```
guest

回答1

0

自己解決

アップデートしたMobXが悪さをしていると思ったのですがそれ以外の箇所でもReact is not definedが多発していたので、どこかしらの設定がおかしいと思い、
とりあえずはwebpack.configに以下の内容を追加することで解決しました。

plugins: [ new webpack.ProvidePlugin({ "React": "react", }), ],

投稿2021/12/27 02:44

HALUO

総合スコア28

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問