找不到react-redux上下文值;请确保组件 Package 在提供程序中

iyr7buue  于 2023-04-21  发布在  React
关注(0)|答案(2)|浏览(189)

我尝试react-nativeredux,我得到了一些问题。
我用Provider Package 了NavigationContainer,但仍然得到:
错误:找不到react-redux上下文值;请确保组件 Package 在<Provider>
当我使用选择器选择状态值并在控制台记录时,就会发生这种情况。

我的slice类看起来像这样:

我的Store类看起来像这样:

qyuhtwio

qyuhtwio1#

下面的错误告诉你,你正在尝试读取react-redux上下文值(store),而没有首先提供上下文值。
错误:找不到react-redux上下文值;请确保组件 Package 在<Provider>
如果你需要访问App组件中的redux store,你应该用<Provider /> Package App组件,这样它就可以向App和其他嵌套组件提供react-redux上下文值。
因此,您可以在index.jsxindex.js中使用Provider

ReactDOM.render(
  <StrictMode>
    <Provider store={store}> {/* HERE */}
      <App /> {/* Now, App is wrapped in Provider and hence can read from store */}
    </Provider>
  </StrictMode>,
  document.getElementById('root')
)

在此之后,您可以使用useSelector(或connect)读取App或任何其他嵌套组件中的redux存储:

const countryCode = useSelector(selectCountryCode)
8ftvxx2r

8ftvxx2r2#

将您的App.js重命名为Index.js,并从此处删除提供程序,然后在同一文件层次结构中创建另一个App.js

现在,在App.js

import * as React from 'react';
import { Provider } from 'react-redux';
import store from './src/store/DataCentre'
import Index from './Index'

function App(){
    return(
    <Provider store={store}>
        <Index/>
    </Provider>

    );
}

export default App

最后一件事,从终端重新启动您的Expo应用程序(必须)

它为我工作,如果你面临任何疑问,只是在下面评论
谢谢你

相关问题