redux,无效的钩子调用,钩子只能在函数组件的主体内部调用[已关闭]

9w11ddsr  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(107)

**已关闭。**此问题需要debugging details。它目前不接受回答。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答这个问题。
25天前关闭
Improve this question
当我在root.render中设置并使用Provider时,它显示了这个错误:
警告:无效的钩子调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一:
1.你可能有不匹配的React版本和渲染器(比如React DOM)
1.你可能违反了钩的规则
1.您可能在同一应用中有多个React副本,并且未捕获的TypeError:无法读取null的属性(阅读'useMemo')
它只是Provider组件,如果我不调用它,我不会有这个错误。

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import reportWebVitals from './reportWebVitals';
import { Provider } from 'react-redux';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <Provider>
    <App />
  </Provider>
);

reportWebVitals();

字符串
我卸载了redux和npm包,然后用最后一个版本安装它们,但我有同样的问题。有人说可能是因为有相同的名字在两个包,这是混淆的计算机,但我不这么认为。

icnyk63a

icnyk63a1#

您需要将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();

字符串

qgelzfjb

qgelzfjb2#

我已经做了一个注解,但是为了使它更明显,我粘贴了这个代码片段。让我知道是否还有其他问题?

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 "./store" // you need a store to provide to the provider

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <Provider store={store}>
    <App />
  </Provider>
);

reportWebVitals();

字符串
零钱在这一行

import store from "./store"
<Provider store={store}>
    <App />
</Provider>

相关问题