Redux DevTools Extension using TSでのエラー:「プロパティ '__REDUX_DEVTOOLS_EXTENSION_COMPOSE__' はタイプ 'Window' に存在しません」?
2023-09-30 08:33:43
質問内容
index.tsxでこのエラーが発生しました。
プロパティに' redux_devtools_extension_compose(レデュースデバイスツールエクステンションコンポーズ)。 ' はタイプ 'Window' に存在しません。
以下は私のindex.tsxのコードです。
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import App from './App';
import './index.css';
import registerServiceWorker from './registerServiceWorker';
import { Provider } from 'react-redux';
import { createStore, compose, applyMiddleware } from 'redux';
import rootReducer from './store/reducers';
import thunk from 'redux-thunk';
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(rootReducer, composeEnhancers(
applyMiddleware(thunk)
));
ReactDOM.render( <Provider store={store}><App /></Provider>, document.getElementById('root'));
registerServiceWorker();
私は@types/npm install --save-dev redux-devtools-extensionをインストールし、create-react-app-typescriptを使用しているのです。事前に何が起こっているのかのヒントをたくさんありがとうございます。
どのように解決するのですか?
このように
redux-dev-tools
をtypescriptのreactアプリケーションで使用する方法です。
のグローバルInterfaceを作成します。
Window
オブジェクトを作成します。
declare global {
interface Window {
__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?: typeof compose;
}
}
次に
composeEnhancers
を以下のように作成します。
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
次に
store
.
const store = createStore(rootReducers, composeEnhancers());
rootReducers
- というのは、私の場合
combinedReducers
を参照しています。
これで
Provider
の中で、いつものように
React.js
のように
ReactDOM.render(
<React.StrictMode>
<Provider store={store}>
<App />
</Provider>
</React.StrictMode>,
document.getElementById("root")
);
の中のすべてのコードは
index.tsx
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import rootReducers from "./reducers";
import { Provider } from "react-redux";
import { createStore, compose, applyMiddleware } from "redux";
declare global {
interface Window {
__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?: typeof compose;
}
}
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(rootReducers, composeEnhancers());
ReactDOM.render(
<React.StrictMode>
<Provider store={store}>
<App />
</Provider>
</React.StrictMode>,
document.getElementById("root")
);
reportWebVitals();
関連
-
[解決済み] エラー: 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み] ReactjsのEsLintの "react / jsx-props-no-spreading "エラーを無効化する。
-
[解決済み] sh: react-scripts: npm start の実行後にコマンドが見つからない。
-
[解決済み] react.jsでng-ifに相当するものは何ですか?
-
[解決済み] 矢印本体を囲む予期せぬブロックステートメント
-
[解決済み] create-react-appビルドスクリプトを実行する際に、ビルド.env変数を設定するには?
-
[解決済み] React QueryとReduxの主な違いは何ですか?
-
[解決済み] reactのuseStateフックでコールバックを使う方法 [重複]。
-
[解決済み] Reactでグローバル変数を宣言する方法とは?
-
[解決済み] ES6 ジェネレータで redux-saga を使用する利点/欠点と ES2017 async/await で redux-thunk を使用する利点/欠点
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】プリセットファイルはオブジェクトのエクスポートができない
-
[解決済み] React.createElement: type is invalid -- expected a string.
-
[解決済み] material-ui-pickers KeyboardDatePicker をモーメントで使用するには?
-
[解決済み] SVGサークル内の画像にボーダーを追加する方法
-
[解決済み] ReactJsのCreateClassは関数ではない
-
[解決済み] Webpack のコンパイルに失敗した
-
[解決済み] react.jsでng-ifに相当するものは何ですか?
-
[解決済み] プロップ `history` は `Router` で必須とマークされているが、その値は `undefined` である。
-
[解決済み] React QueryとReduxの主な違いは何ですか?
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?