<Provider>中的错误-检查`Provider`的渲染方法。react-redux

use*_*366 4 redux redux-thunk redux-saga react-redux 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 ..."+store);
    console.log(Provider);

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

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

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

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

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

    return state;
    };

    export default reducer;
Run Code Online (Sandbox Code Playgroud)

代码:这是我的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;
Run Code Online (Sandbox Code Playgroud)

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

检查的渲染方法Provider

请参考两个图片以获取错误信息。我收到错误消息,请检查您的提供程序组件渲染方法,但这不是我要更改的提供程序渲染方法。因为它是从redux导入的类,所以请帮助我解决这个问题,最近两天我都无法解决。

Jua*_*nus 6

与先前的代码以及新的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

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


var*_*ons 0

我认为你的问题在于你传入的减速器。你是否使用过combineReducers函数来组合你的减速器?

import { createStore, combineReducers } from "redux";


const store = createStore(combineReducers({ 
    //...all your reducers 
}));
Run Code Online (Sandbox Code Playgroud)

工作沙箱示例

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