Javascript 反应还原->;地图不是一个函数吗?

Javascript 反应还原->;地图不是一个函数吗?,javascript,reactjs,redux,redux-persist,Javascript,Reactjs,Redux,Redux Persist,因此,我正在学习如何使用redux和redux persist,目前我遇到了一个问题。每当我试图映射我的商店内容时,它都会抛出一个错误,说TypeError:tasks.map不是一个函数,我真的不知道为什么会出现这个问题。我在谷歌上搜索过,试过调试它,也试过几次重新编写代码,但都没有用。这是我的全部代码: rootReducer.js import React from 'react' let nextToDo = 0; const task=[ { } ] const re

因此,我正在学习如何使用redux和redux persist,目前我遇到了一个问题。每当我试图映射我的商店内容时,它都会抛出一个错误,说
TypeError:tasks.map不是一个函数,我真的不知道为什么会出现这个问题。我在谷歌上搜索过,试过调试它,也试过几次重新编写代码,但都没有用。这是我的全部代码:
rootReducer.js

import React from 'react'

let nextToDo = 0;
const task=[
    {
    }
]
const reducer =(state=task, action)=>
{
    switch(action.type)
    {
        case 'add':
            return[
                ...state,
                {
                    name: 'new',
                    id: nextToDo+=1
                }
            ]
        default:
            return state;
    }
}


export default reducer
store.js

import reducer from './rootReducer'
import {applyMiddleware,createStore} from 'redux'
import logger from 'redux-logger'
import {persistStore, persistReducer} from 'redux-persist'
import storage from 'redux-persist/lib/storage'

const persistConfig ={
    key: 'root',
    storage
}
export const persistedReducer = persistReducer(persistConfig, reducer)
export const store = createStore(persistedReducer, applyMiddleware(logger));
export const persistor = persistStore(store);

export default {store, persistor}
Index.js:

import React, {Component} from 'react'
import {createStore} from 'redux'
import reducer from './rootReducer'
import 'bootstrap/dist/css/bootstrap.min.css'
import {Button} from 'react-bootstrap'
import {store} from './store'
import {connect} from 'react-redux'

class Index extends Component {
    render(){
    const {tasks} = this.props
    const add=()=>
    {
        store.dispatch(
            {
                type: 'add', 
            }
        )
    }
    store.subscribe(()=>console.log('your store is now', store.getState()))
    return (
        <div>
            {tasks.map(task=><div>{task.name}</div>)}
            <Button onClick={()=>add()}></Button> 
        </div>
    )
}
}
const mapStateToProps=(state)=>
{
    return{
        tasks: state
    }
}

export default connect(mapStateToProps)(Index)
import React,{Component}来自“React”
从“redux”导入{createStore}
从“./rootReducer”导入减速器
导入“bootstrap/dist/css/bootstrap.min.css”
从“react bootstrap”导入{Button}
从“/store”导入{store}
从“react redux”导入{connect}
类索引扩展组件{
render(){
const{tasks}=this.props
常量添加=()=>
{
仓库调度(
{
键入:“添加”,
}
)
}
store.subscribe(()=>console.log('您的存储现在是',store.getState()))
返回(
{tasks.map(task=>task.name}
添加()}>
)
}
}
常量mapStateToProps=(状态)=>
{
返回{
任务:国家
}
}
导出默认连接(MapStateTops)(索引)

尝试以这种方式声明状态:

状态={
任务:[{}]

}
在渲染它之前,您是否尝试过简单的console.logging
tasks
任务?是的,它正是我想要的对象,现在它是:
{0:{…},计数:1,名称:“new”,持续:{…}
@Python\u Mython79
{0:{…},计数:1,名称:“new”,持续:{…}
甚至不是有效的javascript语法,也不清楚它是什么。你能在MapStateTops中记录
JSON.stringify(state)
吗?当我这样做时,我会得到TypeError:无法读取undefined的属性“map”,但它显然不是,因为我在代码的前面已经记录了任务,并且判断你的状态是否确实发生了变化不是undefinedtry,你是对的!我不得不通过改变减速器的状态来稍微改变减速器,非常感谢!