未从商店传递Redux-Toolkit状态。react-redux

无盒

我正在尝试使用Redux-Toolkit转换一个简单的React-Redux项目。我使用configureStore创建了商店,但是商店似乎没有将初始状态传递给子组件。

这是我的redux-toolkit(redux-index.js)js文件


    import { configureStore, 
        getDefaultMiddleware, 
        createSlice } from "@reduxjs/toolkit"


    const middleWare  = [
        ...getDefaultMiddleware(),
    ]

    const articleState = {
        articles: [],
        remoteArticles: [],
    }

    const articleSlice = createSlice({
        name : "article",
        initialState: articleState,
        reducers: {
            addArticle : (state, action) => {
                state.articles = state.articles.concat(action.payload)
            }
        }

    })

    export const { addArticle } = articleSlice.actions
    const articleReducer = articleSlice.reducer;

    const store = configureStore({
        reducer : {
            article : articleReducer,
        },
        middleWare
    })

    export default store

我的index.js


    import React from "react";
    import { render } from "react-dom";
    import { Provider } from "react-redux";
    import store from './redux-index';
    import App from "./App";

    render(
      <Provider store={store}>
        <App />
      </Provider>,
      // The target element might be either root or app,
      // depending on your development environment
      // document.getElementById("app")
      document.getElementById("root")
    );

App.js


    import React from 'react';
    import List from './components/List';
    import Form from './components/Form';

    const App = () => (
      <>
        <div>
          <h2>Articles</h2>
          <List /> 
        </div>
        <div>
          <h2>Add a new article</h2>
          <Form />
        </div>
      </>
    );

    export default App;

最后是List.js

    import React from "react";
    import { connect } from "react-redux";

    const mapStateToProps = state => {
      return { articles: state.articles };
    };

    const ConnectedList = ({ articles }) => (
      <ul>
        {articles.map(el => (
          <li key={el.id}>{el.title}</li>
        ))}
      </ul>
    );

    const List = connect(mapStateToProps)(ConnectedList);

    export default List;

当我尝试运行程序时,它将引发以下错误:


    Uncaught TypeError: Cannot read property 'map' of undefined
    at ConnectedList (List.js:9)
    at renderWithHooks (react-dom.development.js:14803)
    at mountIndeterminateComponent (react-dom.development.js:17482)
    at beginWork (react-dom.development.js:18596)
    at HTMLUnknownElement.callCallback (react-dom.development.js:188)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:237)
    at invokeGuardedCallback (react-dom.development.js:292)
    at beginWork$1 (react-dom.development.js:23203)
    at performUnitOfWork (react-dom.development.js:22157)
    at workLoopSync (react-dom.development.js:22130)
    at performSyncWorkOnRoot (react-dom.development.js:21756)
    at scheduleUpdateOnFiber (react-dom.development.js:21188)
    at updateContainer (react-dom.development.js:24373)
    at react-dom.development.js:24758
    at unbatchedUpdates (react-dom.development.js:21903)
    at legacyRenderSubtreeIntoContainer (react-dom.development.js:24757)
    at render (react-dom.development.js:24840)
    at Module../src/index.js (index.js:7)
    at __webpack_require__ (bootstrap:784)
    at fn (bootstrap:150)
    at Object.1 (redux-index.js:36)
    at __webpack_require__ (bootstrap:784)
    at checkDeferredModules (bootstrap:45)
    at Array.webpackJsonpCallback [as push] (bootstrap:32)
    at main.chunk.js:1
丹尼斯瓦什

在中mapStateToPropsstateobject是Redux状态对象(与您从中获得的状态对象相同store.getState())。

您具有article来自定义的slice的状态name : "article",因此需要将其更改为:

const mapStateToProps = state => {
  return { articles: state.article.articles };
};

参见mapStateToProps文档

编辑节日merkle-tzvgs

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Redux Toolkit-重置状态

来自分类Dev

关于 react redux 的状态

来自分类Dev

React Redux传递状态作为组件的道具

来自分类Dev

将 Redux 状态传递给 React 组件

来自分类Dev

React + Redux:商店更新时如何更新状态

来自分类Dev

React Redux不传播状态

来自分类Dev

React Redux不更新状态

来自分类Dev

Redux:不使用时从商店中清除大型列表

来自分类Dev

redux thunk调度后从商店返回promise

来自分类Dev

Redux - 无法访问容器属性以将 api 凭据(从商店)传递到容器组件中的调用函数

来自分类Dev

如何将Redux Toolkit的createSlice创建的Redux动作传递给React Native中的屏幕

来自分类Dev

从@ reduxjs / toolkit使用configureStore时如何重置Redux Store的状态?

来自分类Dev

如何在Redux Toolkit reducer中替换整个状态?

来自分类常见问题

在Redux Reducer中读取商店的初始状态

来自分类Dev

在 Redux 中设置应用挂载的商店状态

来自分类Dev

无法在 redux 商店中设置状态

来自分类Dev

通过NavigatorIOS传递Redux状态

来自分类Dev

将状态传递给React / Redux中的递归嵌套组件

来自分类Dev

React-Redux:不能使用商店

来自分类Dev

异步初始状态React-Redux Redux-Thunk

来自分类Dev

React和Redux:在Redux中存储加载状态的正确方法

来自分类Dev

react-redux 更新 redux 存储但不更新组件状态

来自分类Dev

react-redux Reducer 不会将对象传递给商店

来自分类Dev

React-Redux复杂(深度)状态对象

来自分类Dev

React + Redux中的路由状态名称

来自分类Dev

Redux React从API创建初始状态

来自分类Dev

React Redux生成的无状态组件性能

来自分类Dev

无法从redux接收react组件中的状态

来自分类Dev

React-Redux,状态未正确更新

Related 相关文章

热门标签

归档