首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><Provider>出错-请检查`Provider`的render方法。react-redux

<Provider>出错-请检查`Provider`的render方法。react-redux
EN

Stack Overflow用户
提问于 2019-01-15 02:58:00
回答 3查看 3.7K关注 0票数 5

enter image description here

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

代码语言:javascript
复制
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文件

代码语言:javascript
复制
    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

代码语言:javascript
复制
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;

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

检查Provider的render方法。

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

EN

回答 3

Stack Overflow用户

发布于 2019-01-17 22:32:47

与以前的代码和新的React或Redux版本不兼容。

我一直有这个问题,直到我降级我安装的工具,查看附件中的package.json文件比较的图像。

我不知道哪个文件才是罪魁祸首。

在屏幕右侧的列表中,它可以工作,而在另一个列表中,无论我做什么都会得到错误。

版本差异以黄色背景突出显示。

我猜测(未经过测试)该问题源于react和react-dom包之间的版本差异。

维克多·努内斯提出的一个解决方案是:

  1. 删除package-lock.json文件和node_modules文件夹
  2. 删除package.json
  3. 运行<代码>D10<代码>H211<代码>G212上“依赖关系”的所有内容

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

票数 6
EN

Stack Overflow用户

发布于 2019-01-15 05:14:21

我想你的问题是你正在传递的减速器。你用过combineReducers函数来组合你的reducers吗?

代码语言:javascript
复制
import { createStore, combineReducers } from "redux";


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

Working sandbox example

与您的代码进行比较。也许可以从删除所有路由开始。问题可能出在那里

票数 0
EN

Stack Overflow用户

发布于 2019-01-20 08:04:41

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54187538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档