Javascript 反应还原->;地图不是一个函数吗?
因此,我正在学习如何使用redux和redux persist,目前我遇到了一个问题。每当我试图映射我的商店内容时,它都会抛出一个错误,说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
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.loggingtasks
任务?是的,它正是我想要的对象,现在它是:{0:{…},计数:1,名称:“new”,持续:{…}
@Python\u Mython79{0:{…},计数:1,名称:“new”,持续:{…}
甚至不是有效的javascript语法,也不清楚它是什么。你能在MapStateTops中记录JSON.stringify(state)
吗?当我这样做时,我会得到TypeError:无法读取undefined的属性“map”,但它显然不是,因为我在代码的前面已经记录了任务,并且判断你的状态是否确实发生了变化不是undefinedtry,你是对的!我不得不通过改变减速器的状态来稍微改变减速器,非常感谢!