redux 、無効なフック呼び出し。フックは関数コンポーネント本体内でのみ呼び出すことができます
P粉627027031
2023-09-06 00:35:35
<p><code>root.render</code> で <code>Provider</code> を設定して使用すると、次のエラーが表示されます: </p>
<ブロック引用>
<p>警告: 無効なフック呼び出しです。フックは内部でのみ呼び出すことができます
関数コンポーネントの本体。これは次のいずれかで発生する可能性があります。
その理由は次のとおりです: </p>
<ol>
<li>React とレンダラーのバージョンが一致していない可能性があります (React DOM など)</li>
<li>フックのルールに違反している可能性があります</li>
<li>同じアプリ内に React のコピーが複数ある可能性がありますが、TypeError は捕捉されません: null のプロパティを読み取ることができません ('useMemo' を読み取ります) </li>
</ol>
</blockquote>
<p>これは <code>Provider</code> コンポーネント専用であり、それを呼び出さなければ、このエラーは発生しません。 </p>
<pre class="brush:php;toolbar:false;">React を 'react' からインポートします。
ReactDOM を「react-dom/client」からインポートします。
「./App」からアプリをインポートします。
reportWebVitals を './reportWebVitals' からインポートします。
import { Provider } から 'react-redux';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<プロバイダ>
<アプリ/>
</プロバイダー>
);
reportWebVitals();</pre>
<p>redux および npm パッケージをアンインストールし、最新バージョンを使用してインストールしましたが、同じ問題が発生します。両方のパッケージに同じ名前があり、コンピュータが混乱するからではないかという人もいますが、私はそうは思いません。 </p>
に渡す必要がありますstore
をProvider