Redux 错误在<;提供商>;-检查“提供者”的呈现方法。反应还原

Redux 错误在<;提供商>;-检查“提供者”的呈现方法。反应还原,redux,react-redux,redux-thunk,redux-saga,react-router-redux,Redux,React Redux,Redux Thunk,Redux Saga,React Router Redux,代码:这是我的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

代码:这是我的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'));
代码:这是我的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;
类应用程序扩展组件{
render(){
返回(
);
}
}
导出默认应用程序;
错误:未捕获错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象

检查
提供程序的渲染方法


请参考这两幅图像以了解错误。我得到错误,因为请检查您的提供程序组件渲染方法,但这不是我的手来更改提供程序渲染方法。因为它是从redux导入的类,所以,请帮助我解决这个问题,我在过去两天中遇到的问题无法解决。

我认为您的问题在于您传递的减速器。 您是否使用了组合减速器功能来组合减速器

import { createStore, combineReducers } from "redux";


const store = createStore(combineReducers({ 
    //...all your reducers 
}));


与您的代码进行比较。也许从删除所有路线开始。可能存在问题

与以前的代码以及新的React或Redux版本不兼容。
我一直有这个问题,直到我降级了我安装的工具后,才看到所附的package.json文件的图像进行比较。
我不知道哪个文件是罪魁祸首。
在屏幕右侧的排列可以正常工作,而在另一个排列中,无论我做什么,我都会得到错误。
版本差异以黄色背景突出显示。
我猜(未测试)问题源于react和react dom包之间的版本差异

Victor Nunes建议的解决方案是:

  • 删除
    package lock.json
    文件和
    node\u modules
    文件夹
  • 删除
    package.json上“依赖项”的所有内容
  • 运行
    npm安装--保存react-react-dom-react-redux-react脚本redux

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

    我尝试导入thunk来解决数据类型问题,但它不是一个解决方案。

    你的
    app.js
    是否正确导出了你试图在
    提供程序中呈现的组件
    ?你能给我们看一下应用程序类和应用商店吗?我正在寻找关于完全相同问题的帮助(可能是通过Max的相同教程学习)。我没有组合减速器。错误请参考图片。我已经在控制台中打印了存储和提供程序值。我猜你已经升级了react版本。您还需要升级react dom,它将解决此问题。我也有同样的问题,没有组合的还原器:导入*作为来自“../actionNames”的操作;const initialState={persons:[]};const reducer=(state=initialState,action)=>{switch(action.type){case actions.ADD_PERSON:console.log(actions.ADD_PERSON);返回状态;case actions.DELETE_PERSON:console.log(actions.DELETE_PERSON);返回状态;默认值:返回状态;};导出默认减速机@用户2775366我还没有一个解决方案,如果我有一个,我会尽快与大家分享,并更新这个问题,请大家一起讨论。尽管@varoonsHis版本确实有效,但我们在处理商店时遗漏了一些东西,可能是从州政府输入的联系数据,这些数据必须在讲座中遗漏或在语言更新中丢失。如果你想练习的话,我会把重点放在redux商店的研究上,这是调试,但我将使用his和learn部署,然后重点学习react/redux进程的语言实现,并在之后进行调试。上面列出的
    npm install
    命令为我解决了这个问题(没有删除任何内容)。。在我的情况下,似乎有些依赖项不一致!非常感谢。除了react dom和react脚本,我已经尝试重新安装了所有东西,所以其中一个是我的罪魁祸首。此外,链接到您发现这些信息的位置将有助于某些上下文@Paul抱歉,我无法链接,这些信息来自我正在参加的React课程,而且不是免费的。
    import { createStore, combineReducers } from "redux";
    
    
    const store = createStore(combineReducers({ 
        //...all your reducers 
    }));