Redux 存储更新成功,但组件的 mapStateToProps 接收旧状态

2024-01-02

不知道是什么问题,我已经尝试了一切。 这个问题最接近我的问题,但对我没有帮助https://github.com/reduxjs/redux/issues/585 https://github.com/reduxjs/redux/issues/585 Reducer

export default (state = [], action: any) => {
    switch (action.type) {
        case "GET_ALL":
            return [...action.sections];
        case "ADD_ONE":
            return [...state, action.section];
        case "REMOVE":
            return state.filter((section: Section) => section.id !== action.id);
        default:
            return [...state]
    }
}

动作创造者

export function loadAll(id: number) {
    return function(dispatch: Dispatch) {
        return fetch(`http://localhost:4000/test`, {  
                method: 'GET',
            })
            .then((response: any) => response.json())
            .then((sections: Section[]) => {
                dispatch({
                    type: "GET_ALL",
                    sections
                });
            },
            err => {
                 throw new Error("Network error");
            }
        );
    } }

应用程序引导程序

const composedEnhancers = compose(
    applyMiddleware(thunk, routerMiddleware(history)),
);

const store = createStore(
    connectRouter(history)(combineReducers({
            sections: sectionReducer, 
        })),
    initialState, //is equal to {}
    composedEnhancers
);

    const target = document.querySelector('#root');

    render(
        <Provider store={store}>
            <ConnectedRouter history={history}>
          <div>
            <main className="appContent">
                <Route exact={true} path="/" component={TestPage} />  
            </main>
          </div>
            </ConnectedRouter>
        </Provider>,
        target
    );

组件连接 - 在我的道具中,我收到旧数据,直到我转到下一页并返回

 const mapDispatchToProps = (dispatch: Dispatch, props: any) => {
    return {
        saveSection: (section: Section) => dispatch(saveSection(section) as any),
        loadAll: (id: number) => dispatch(loadAll(id) as any),
        removeSection: (sectionId: number) => dispatch(removeSection(sectionId) as any),
    }
}
const mapStateToProps = ((state: any, ownProps: any) => (() => {
return {
    sections: state.sections || [],
}
}));

export default connect(
    mapStateToProps,
    mapDispatchToProps
)(TestPage)

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redux 存储更新成功,但组件的 mapStateToProps 接收旧状态 的相关文章

随机推荐

  • Javascript:我需要为对象中的每个变量放置 this.var 吗?

    在我最熟悉的 C 语言中 通常声明一个对象如下 class foo public int bar int getBar return bar Calling getBar 工作正常 忽略这一事实bar可能未初始化 变量bar within
  • Hadoop 中的重新分区

    我的问题主要是理论上的 但我有一些表已经遵循某种分区方案 可以说我的表是按天分区的 但在使用数据一段时间后 我们想修改为月份分区 我可以轻松地重新创建具有新分区定义的表并重新插入数据 这是最好的方法吗 当数据很大时听起来很慢 我看到 hiv
  • CakePHP 2 $this->Html->脚本顺序

    我试图将 JS 文件插入到视图中 但它们插入的顺序错误 在我的 default ctp 中我有这个 this gt Html gt script array https ajax googleapis com ajax libs jquer
  • MySQL 连接、分组依据、排序依据

    我有一个产品表 CREATE TABLE products id INT 以及这些产品的图片表 CREATE TABLE images id INT product id INT default TINYINT 1 我需要选择所有产品 并加
  • javafx如何使用复选框获取表视图中选定的行数据

    在这个项目中 我无法在控制台输出中获取复选框数据是否被选中 My code import java util Arrays import java util Iterator import java util List import jav
  • 在 Linux 上快速连接多个文件

    我正在使用 Python 多重处理为每个进程生成一个临时输出文件 它们的大小可能有几 GB 我制作了几十个 这些临时文件需要连接起来才能形成所需的输出 而这一步被证明是瓶颈 也是并行杀手 是否有一个 Linux 工具可以通过修改文件系统元数
  • WebView 不重新加载具有相同 URL 的页面

    当加载与之前加载过的页面具有相同 url 的页面时 JavaFX 会显示一些奇怪的行为 下面的代码演示了这个问题 类初始化后 加载页面 然后使用自定义样式类将突出显示应用于任意 html 元素 该突出显示已正确呈现 最后 通过用户输入事件
  • 使用正确的编码读取文件

    我有一个 txt 文件 如果我使用标准文本编辑器 如记事本或 scite 打开 我可以读取如下字符串 Artist1 Title 1 Artist2 Title 2 然后我用我的 PHP 脚本打开它并阅读以下几行 tracklistFile
  • 将聚合函数 SUM 与 GROUP BY 一起应用

    在 Active Record Ruby on Rails 中执行此查询的最佳方法是什么 SELECT sum amount as total amount FROM payments GROUP BY person id product
  • C# 中有内置的 Encoding Enum 吗?

    我有一个接收 Encoding 对象作为参数的函数 但是 我认为其他程序员传递枚举值而不是 Encoding 对象可能更容易 特别是对于不习惯处理不同编码的程序员 我在 C 中找不到任何内置的 Encoding 枚举 我是否错过了某些内容
  • 这段代码是否通用,或者只是我的系统?

    include
  • 在 Intranet 上使用 Nuget

    我认为 NuGet 是依赖管理的好主意 我想尝试为我的团队使用它来管理依赖项 问题是我们位于内联网上并且没有连接到互联网 理想情况下 我希望能够在本地镜像官方 NuGet feed 并用我们内部提供的本地包 feed 对其进行补充 任何人都
  • 解析 Objective-C printf 格式字符串?

    我想获取某个范围内的成员范围NSString建有 NSString stringWithFormat 解析 Objective C 格式字符串的最佳方法是什么 我不能只使用 C 格式字符串解析器 因为 我还需要确保它支持格式排序 1 d 2
  • 书签功能作为侧边栏打开

    您好 我在我的网站中实现了书签功能 但是当我单击工具栏上的书签链接时 它会在侧边栏中打开一个新窗口 而不是在 mozilla firefox 中打开一个新页面 它在 IE 中工作正常 任何人都可以帮助我吗 AFAIK 您无法更改脚本的行为
  • 导入 typescript 时未找到该相关模块

    先发制人注意事项 Stackoverflow 上有大量 未找到相关模块 的问题 我已经浏览了尽可能多的内容 但它们并不重复 请不要将此标记为重复项 我有一个 Vue 项目设置为vue create使用 Babel 和 Typescript
  • 在Python3.5+中制作列表浅拷贝的最快方法是什么?

    有几种选择可以制作shallow的副本list在 Python 3 5 中 显而易见的是 some list copy some list list some list some list 和别的 哪种方法最快 NOTE 虽然这个问题与 列
  • 迭代嵌套的 JavaScript 对象[重复]

    这个问题在这里已经有答案了 我正在尝试迭代嵌套对象以检索由字符串标识的特定对象 在下面的示例对象中 标识符字符串是 label 属性 我无法理解如何向下迭代树以返回适当的对象 任何帮助或建议将不胜感激 var cars label Auto
  • Android L 5.0 和 libusb 1.0.9 - 没有权限?

    我目前有一个 Android 应用程序通过 USB OTG 连接到设备 通信是使用 libusb 1 0 9 完成的 对于 api 级别 type 1400 audit 0 0 107 avc denied read for name us
  • Bitbucket 克隆:端口号以“T”结尾

    我尝试使用 jenkins 执行 shell 而不是 git 插件 克隆 镜像 我的 bitbucket 存储库 我的凭据 username passwd 保存在变量中 myuser凭证是正确的 我们用了这个插件 https wiki je
  • Redux 存储更新成功,但组件的 mapStateToProps 接收旧状态

    不知道是什么问题 我已经尝试了一切 这个问题最接近我的问题 但对我没有帮助https github com reduxjs redux issues 585 https github com reduxjs redux issues 585