Heim  >  Fragen und Antworten  >  Hauptteil

redux, ungültiger Hook-Aufruf. Hooks können nur innerhalb des Funktionskomponentenkörpers aufgerufen werden

<p>Wenn ich den <code>Provider</code> in <code>root.render</code> einrichte und verwende, wird mir dieser Fehler angezeigt: </p> <blockquote> <p>Warnung: Ungültiger Hook-Aufruf. Hooks können nur intern aufgerufen werden Der Hauptteil der Funktionskomponente. Dies kann in einem der folgenden Fälle passieren Hier ist der Grund: </p> <ol> <li>Ihre React- und Renderer-Versionen stimmen möglicherweise nicht überein (z. B. React DOM)</li> <li>Möglicherweise verstoßen Sie gegen die Hooks-Regeln</li> <li>Möglicherweise haben Sie mehrere Kopien von React in derselben App und TypeError wird nicht abgefangen: Die Eigenschaft von null kann nicht gelesen werden (lesen Sie „useMemo“). </li> </ol> </blockquote> <p>Es gilt nur für die Komponente <code>Provider</code>, wenn ich sie nicht aufrufe, erhalte ich diesen Fehler nicht. </p> <pre class="brush:php;toolbar:false;">import React from 'react'; ReactDOM aus „react-dom/client“ importieren; App aus './App' importieren; importiere reportWebVitals aus './reportWebVitals'; import { Provider } from 'react-redux'; const root = ReactDOM.createRoot(document.getElementById('root')); root.render( <Anbieter> <App /> </Anbieter> ); reportWebVitals();</pre> <p>Ich habe die Pakete redux und npm deinstalliert und mit der neuesten Version installiert, aber ich habe das gleiche Problem. Einige sagen, es könnte daran liegen, dass beide Pakete die gleichen Namen haben, was den Computer verwirrt, aber ich glaube nicht. </p>
P粉627027031P粉627027031429 Tage vor500

Antworte allen(1)Ich werde antworten

  • P粉210405394

    P粉2104053942023-09-06 15:43:32

    您需要将store传递给Provider

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    import { Provider } from 'react-redux';
    import store from "./path/to/store"
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
      <Provider store={store}>
        <App />
      </Provider>
    );
    
    reportWebVitals();

    Antwort
    0
  • StornierenAntwort