首页 > 解决方案 > 错误- 检查 `Provider` 的渲染方法。反应还原

问题描述

在此处输入图像描述在此处输入图像描述

代码:这是我的 index.js 文件

index.js

    import { Provider } from "react-redux";
    import { createStore } from 'redux';

    import App from './app';

    import reducer from './store/reducer';

    const store = createStore(reducer);
    console.log("Store ..."+store);
    console.log(Provider);

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

代码:这是我的 reducer.js 文件

    reducer.js
    import * as actionTypes from './actions';

    const initialState = {
    assistants:[],
    fetchInProgress:true
    }

    const reducer = (state = initialState, action) =>{

    return state;
    };

    export default reducer;

代码:这是我的 app.js 文件 app.js

class App extends Component{
render(){
return(
  <HashRouter>
    <Switch>
    <Route exact path="/login" name="Login Page" component={Login}/>
    <Route exact path="/register" name="Register Page" component= 
    {Register}/>
    <Route exact path="/404" name="Page 404" component={Page404}/>
    <Route exact path="/500" name="Page 500" component={Page500}/>
    <Route path="/" name="Home" component={Full}/>
    </Switch>
  </HashRouter>
  );
 }
 }

 export default App;

错误:未捕获错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。

检查Provider.

请参阅两张图片以了解错误。我收到错误,请检查您的提供程序组件渲染方法,但这不是我要更改提供程序渲染方法的。因为它是从 redux 导入的类,所以请帮我解决这个问题,我从过去两天面临的这个问题无法解决。

标签: reduxreact-reduxredux-thunkredux-sagareact-router-redux

解决方案


与以前的代码和新的 React 或 Redux 版本不兼容。
在我降级安装的工具之前,我遇到了这个问题,请参阅 package.json 文件比较的附件图像。
在此处输入图像描述 我不知道哪个文件是罪魁祸首。
使用屏幕右侧的阵容,它可以工作,而另一方面,无论我做什么,我都会收到错误。
版本差异以黄色背景突出显示。
我猜(未经测试)问题源于 react 和 react-dom 包之间的版本差异。

Victor Nunes 建议的解决方案是:

  1. 删除package-lock.json文件和node_modules文件夹
  2. 删除“依赖项”的所有内容package.json
  3. npm install --save react react-dom react-redux react-scripts redux

除了上面列出的软件包之外,您可能还需要安装其他软件包。


推荐阅读