Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 已回答未捕获的TypeError:state.concat不是函数错误_Reactjs_Redux - Fatal编程技术网

Reactjs 已回答未捕获的TypeError:state.concat不是函数错误

Reactjs 已回答未捕获的TypeError:state.concat不是函数错误,reactjs,redux,Reactjs,Redux,我正在学习React和redux的教程,但在视频的最后,我得到了一个错误,即使我有相同的代码 未捕获类型错误:state.concat不是函数 任何帮助都将不胜感激 //action是参数,reducer是函数 //我们将根据操作(函数)更改状态 //函数将被还原 常量卡=(状态、动作)=>{ 开关(动作类型){ 案例“添加卡”: 让newCard=Object.assign({},action.data{ 得分:1,, id:+新日期 }); //错误就在这里 返回状态.concat([ne

我正在学习React和redux的教程,但在视频的最后,我得到了一个错误,即使我有相同的代码

未捕获类型错误:state.concat不是函数

任何帮助都将不胜感激

//action是参数,reducer是函数
//我们将根据操作(函数)更改状态
//函数将被还原
常量卡=(状态、动作)=>{
开关(动作类型){
案例“添加卡”:
让newCard=Object.assign({},action.data{
得分:1,,
id:+新日期
});
//错误就在这里
返回状态.concat([newCard]);
违约:
返回状态| |{};
}
};
//Redux helper函数传递reducer函数
const store=Redux.createStore(Redux.combineReducers({
卡片:卡片
}));
//留意商店的变化
store.subscribe(()=>{
log(store.getState());
});
//激活存储操作
仓库调度({
键入:“添加卡”,
数据:{
前:"前",,
背:“背”
}
});
//另一个动作
仓库调度({
键入:“添加卡”,
数据:{}

});状态应该是一个对象,而不是一个数组,因此.concat将无法处理它。您必须执行类似state.cards.concat(foobar)的操作。如果我错了,请纠正我的错误,但请查看状态并验证其类型。

我返回的是对象{},而不是卡片中默认级别的数组[]

//action是参数,reducer是函数
//我们将根据操作(函数)更改状态
//函数将被还原
常量卡=(状态、动作)=>{
开关(动作类型){
案例“添加卡”:
让newCard=Object.assign({},action.data{
得分:1,,
id:+新日期
});
//将状态对象拆分为各个属性
返回状态.concat([newCard]);
违约:
返回状态| |[];
}
};
//Redux helper函数传递reducer函数
const store=Redux.createStore(Redux.combineReducers({
卡片:卡片
}));
//留意商店的变化
store.subscribe(()=>{
log(store.getState());
});
//激活存储操作
仓库调度({
键入:“添加卡”,
数据:{
前:"前",,
背:“背”
}
});
我没有在默认情况下在卡片中重新排列数组,而是使用了{}。我是客人,我在退东西?
//另一个动作
仓库调度({
键入:“添加卡”,
数据:{}
});请尝试此代码

const cards = (state = [], action) => {
    switch (action.type){
        case 'ADD_CARD':
            let newCard = Object.assign({}, action.data, {
                score: 1,
                id: +new Date
            });
            //error is here
            return state.concat(newCard);
        default:
            return state || {};
    }
};
State.Cards.Concat(新卡);
您的数组不是卡的状态。

在这种情况下,状态是卡的属性,根据视频中的作者,它是一个数组?谢谢你在调试器中检查并确认吗?或者只是控制台日志并将输出发送给我。你能分享你正在谈论的教程和完整的代码吗?更新我刚刚通过返回状态| |[]修复了这个问题;而不是{}我不知道如何标记答案@史蒂文·阿塞尔达7