Rumah  >  Soal Jawab  >  teks badan

redux , panggilan cangkuk tidak sah. Cangkuk hanya boleh dipanggil dalam badan komponen fungsi

<p>Apabila saya menyediakan dan menggunakan <kod>Pembekal</code> dalam <code>root.render</code>, ia menunjukkan kepada saya ralat ini: </p> <blockquote> <p>Amaran: Panggilan cangkuk tidak sah. Cangkuk hanya boleh dipanggil secara dalaman Badan komponen fungsi. Ini mungkin berlaku dalam salah satu daripada Inilah sebabnya: </p> <ol> <li>Versi React dan pemapar anda mungkin tidak sepadan (cth. React DOM)</li> <li>Anda mungkin melanggar peraturan Hooks</li> <li>Anda mungkin mempunyai berbilang salinan React dalam apl yang sama dan TypeError tidak ditangkap: Tidak dapat membaca sifat null (baca 'useMemo') </li> </ol> </blockquote> <p>Ia hanya untuk komponen <kod>Pembekal</kod>, jika saya tidak memanggilnya, saya tidak mendapat ralat ini. </p> <pre class="brush:php;toolbar:false;">import React daripada 'react'; import ReactDOM daripada 'react-dom/client'; import Apl daripada './App'; import reportWebVitals daripada './reportWebVitals'; import { Provider } daripada 'react-redux'; const root = ReactDOM.createRoot(document.getElementById('root')); root.render( <Pembekal> <Apl /> </Pembekal> ); reportWebVitals();</pre> <p>Saya menyahpasang pakej redux dan npm dan memasangnya menggunakan versi terkini, tetapi saya menghadapi masalah yang sama. Ada yang mengatakan mungkin kerana terdapat nama yang sama dalam kedua-dua pakej, yang mengelirukan komputer, tetapi saya tidak fikir begitu. </p>
P粉627027031P粉627027031429 hari yang lalu501

membalas semua(1)saya akan balas

  • P粉210405394

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

    Anda perlu 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();

    balas
    0
  • Batalbalas