React ReduxReducer:“this.props.tasks.map不是函数”错误

2023-12-03

我正在制作一个 React Redux 示例;但是,我遇到了一个问题并收到以下错误:

类型错误:this.props.tasks.map 不是函数 [了解更多]

我尝试了很多事情,但我似乎无法理解为什么这不起作用。我相信这是 allReducers 从 Tasks 函数映射任务的时候。我已经来回修复了这个错误,但随后它会抱怨它未定义。我会解决这个问题并回到这个问题。任何帮助,将不胜感激。我确信我犯了一个简单的错误。以下是我的以下文件

App.js

import React from 'react';
import TaskBoard from "../containers/task-board";
require('../../scss/style.scss');

const App = () => (
    <div>
        <h2>Task List</h2>
        <hr />
        <TaskBoard/>
    </div>
);

export default App;

index.js

    import {combineReducers} from 'redux';
    import {Tasks} from './reducer-tasks';
    const allReducers = combineReducers({
        tasks: Tasks
    });

    export default allReducers

任务板.js

    import React, {Component} from 'react';
    import {bindActionCreators} from 'redux';
    import {connect} from 'react-redux';
    import {deleteTaskAction} from '../actions/ActionIndex';
    import {editTaskAction} from '../actions/ActionIndex';
    class TaskBoard extends Component {
        renderList() {
            return this.props.tasks.map((task) => {
                if(task.status == "pending"){
                    return (<li key={task.id}>
                        {task.id} {task.description}
                        <button type="button">Finish</button>
                        <button type="button">Edit</button>
                        <button onClick={() => this.props.deleteTask(task)} type="button">Delete</button>
                    </li>
                );
            }
        });
    }
    render() {
        if (!this.props.tasks) {
            console.log(this.props.tasks);
            return (<div>You currently have no tasks, please first create one...</div>);
        }
        return (
            <div>
                {this.renderList()}
            </div>
        );
    }
}
    function mapStateToProps(state) {
        return {
            tasks: state.tasks
        };
    }
    function matchDispatchToProps(dispatch){
        return bindActionCreators(
        {
            deleteTask: deleteTaskAction,
            editTask: editTaskAction
        }, dispatch)
    }
    export default connect(mapStateToProps,matchDispatchToProps)(TaskBoard);

减速器任务.js

const initialState = {
	tasks: [
        {
            id: 1,
            description: "This is a task",
            status: "pending"
        },
        {
            id: 2,
            description: "This is another task",
            status: "pending"
        },
        {
            id: 3,
            description: "This is an easy task",
            status: "pending" 

        }
	]
}

export function Tasks (state = initialState, action) {
    switch (action.type) {
        case 'ADD_TASK':
            return Object.assign({}, state, {
            	tasks: [
            		...state.tasks,
            		{
            			description: action.text,
            			status: action.status
            		}
            	]
            })
            break;

        case 'EDIT_TASK':
            return action.payload;
            break;

        case 'DELETE_TASK':
            return Object.assign({}, state, {
            	status: action.status
            })
            break;
    }

    return state;
}

动作索引.js

    export const addTaskAction = (task) => {
        return {
            type: 'ADD_TASK',
            text: "Here is a sample description",
            status: "pending"
        }
    };
    export const deleteTaskAction = (task) => {
        return {
            type: 'DELETE_TASK',
            status: "deleted"
        }
    };
    export const editTaskAction = (task) => {
        return {
            type: 'EDIT_TASK',
            payload: task
        }
    };

这是因为“map”函数只能用于数组,不能用于对象。

如果您在 task-board.js 的渲染函数中打印出 this.props.tasks ,您将看到它是一个包含任务数组的对象,而不是实际的任务数组本身。

所以要解决这个问题很简单,而不是:

    return this.props.tasks.map((task) => {

it's

    return this.props.tasks.tasks.map((task) => {

然后就可以了

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

React ReduxReducer:“this.props.tasks.map不是函数”错误 的相关文章

随机推荐

  • 对 c# .net 中的服务结果进行正确的空检查

    有贾里德 帕森斯的推文谁是 C 编译器开发人员 该推文声称我们应该使用 is object 作为非空检查 我的问题是为什么会这样 如果我从服务调用中得到结果 我应该运行 is object 检查而不是 null 吗 根据我的理解和我在微软文
  • 如何使用OpenSSL的SHA256函数

    我正在编写一个程序来熟悉 OpenSSL libncurses 和 UDP 网络 我决定使用 OpenSSL 的 SHA256 来熟悉行业加密标准 但我在使其正常工作时遇到了问题 我已将错误与 OpenSSL 与编译程序的链接隔离开来 我正
  • MySQL:使用 BEGIN&COMMIT 插入同一查询中的多个表

    我想使用 BEGIN 和 COMMIT 在同一查询中插入多个表 看来错误是在开始时发生的 这是我的 SQL 命令 BEGIN INSERT INTO Product pName pBrand pCategory pSize pQuantit
  • 如何获取字段类型和值?

    我目前正在尝试使用 mysql php 构建一个表单 下面是我到目前为止的代码的一部分 BLOCK 1 proceso mysqli fetch assoc result my query returns only one row
  • 默认模板类参数混淆了 g++?

    昨天 我遇到了 g 3 4 6 编译器问题 我使用 Intel 9 0 编译器编译的代码没有出现问题 下面的代码片段显示了发生的情况 template
  • 替代 tkinter.dooneevent

    我正在将一个程序 VMD 视觉分子动力学 移植到 Python 3 x 该程序是用 C 编写的 并且嵌入了 Python 和 TCL 解释器 其大部分 UI 是使用 TCL TK 框架和 OpenGL 进行硬编码的 因此 UI 刷新是手动完
  • 检查电子邮件地址在 iOS 上是否有效[重复]

    这个问题在这里已经有答案了 可能的重复 在 iOS 2 0 上的 Objective C 中验证电子邮件地址的最佳实践 我正在开发一个 iPhone 应用程序 我需要用户在登录时提供他的电子邮件地址 检查电子邮件地址是否有效的最佳方法是什么
  • 如何通过 SSH 连接到 colima 实例

    查找 SSH 所需的步骤colima 这太新了 文档有点匮乏 我需要复制卷并运行scp看起来很理想 最快的答案 colima ssh 使用快速回答ssh tmpconfig mktemp limactl show ssh format co
  • 旋转 UIButton

    我一直在尝试使用以下方法旋转按钮 IBAction rotate id sender CGPoint pencilCenter pencil center pencil setCenter pencilCenter CGFloat floa
  • Java/Mongodb 身份验证

    我看到很多教程展示了如何使用 Java 在 mongodb 中进行身份验证 我的 mongodb 配置为启用身份验证 在控制台中我使用 使用管理员 db auth myUser newPassword 并且运行良好 在java中 在访问的每
  • 按组的平均值划分数据列

    如果我有一个数据框 例如 group rep 1 4 each 10 data c seq 1 10 1 seq 5 50 5 seq 20 11 1 seq 0 3 3 0 3 DF data frame group data 现在 我想
  • 检测 PHP 变量不足:FALSE、NULL、unset()、empty()?

    定义 PHP 中不存在某个值或不足以满足应用程序需求的最佳方法是什么 var NULL var array var FALSE 最好的测试方法是什么 isset var empty var if var NULL if var 将变量初始化
  • System.in.read实际返回什么?

    什么是 System in read 返回 这文档 says 返回 数据的下一个字节 如果到达流末尾则为 1 49是字符的 ASCII 值1 它是第一个字节的值 The stream of bytes that is produced wh
  • 如何使用 Android 从 Firebase 数据库获取嵌套子项?

    我想从这种类型的 JSON 树中获取所有允许的子项的列表 databaseRef child Users child Allowded addValueEventListener new ValueEventListener Overrid
  • Django 测试:查看创建错误响应的回溯

    该模式来自 django 文档 class SimpleTest unittest TestCase def test details self client Client response client get customer deta
  • Swift - 委托协议结构

    请原谅我对 Swift 还很陌生 我想创建一个用于 POST 请求并从服务器获取响应的委托 然后将从服务器返回的参数传递给 func 并允许我的主类做出相应的响应 下面是我的代表和我的主要课程 它没有打印 LoginViewControll
  • 使用 GoogleCloudMessaging 替换 GCMBaseIntentService

    我是 Android 开发新手 我不得不将我的第一个项目从 Eclipse 切换到 Android Studio 发现库 GCMBaseIntentService 不再受支持 我找到了 GoogleCloudMessaging 但完全不知道
  • 如何在没有 CSR 的情况下在 Tomcat 中安装 GoDaddy SSL 证书?

    我们的一位客户购买通配符 SSL 证书 example com 来自 GoDaddy 他只是简单下载 没有提供 CSR 数据 该 zip 文件中有 3 个文件 那些是fce4f111a61ea3f4 crt gd bundle g2 g1
  • 访问从模板类派生的类中的基成员函数[重复]

    这个问题在这里已经有答案了 我正在工作中开发一个库 并且设计了一个复杂的继承 其中包括模板类并从中派生 我的问题是基模板类具有虚拟重载运算符 它接受 2 个参数并返回一些值 在基类中实现了此运算符 并且大多数派生类没有重新实现此运算符 其他
  • React ReduxReducer:“this.props.tasks.map不是函数”错误

    我正在制作一个 React Redux 示例 但是 我遇到了一个问题并收到以下错误 类型错误 this props tasks map 不是函数 了解更多 我尝试了很多事情 但我似乎无法理解为什么这不起作用 我相信这是 allReducer