Reactjs 使用一些错误的语法错误对Reducer进行响应

Reactjs 使用一些错误的语法错误对Reducer进行响应,reactjs,jsx,reducers,Reactjs,Jsx,Reducers,我是一个React初学者,正在尝试创建一个减速机。首先,它至少在语法上是正确的(不确定逻辑)。在我添加IF和elseif之后,如果语法完全混乱: 无法工作的更新版本: 从'reactn'导入{addReducer}; 异步函数缩减器(){ addReducer('updateFormValues',(全局、分派、道具)=>({ if(props.type&&props.id){ 返回{ 活动:{ …global.form, [道具类型]:{ …全局.form.[props.type], [p

我是一个React初学者,正在尝试创建一个减速机。首先,它至少在语法上是正确的(不确定逻辑)。在我添加IF和elseif之后,如果语法完全混乱:

无法工作的更新版本:

从'reactn'导入{addReducer};
异步函数缩减器(){
addReducer('updateFormValues',(全局、分派、道具)=>({
if(props.type&&props.id){
返回{
活动:{
…global.form,
[道具类型]:{
…全局.form.[props.type],
[props.id]:props.value
}
}
}
}else if(!props.type&&props.id)){
[props.value]:[global.form]
}
}))
}
导出默认减速机

中(全局、调度、道具)=>({
箭头后带括号的语法表示立即返回。因此,您实际编写的是:

(全局、调度、道具)=>{
返回{
if(props.type&&props.id){
返回{
...
}
}
}
}
意思是
=>(
实际上是一个对象。这就解释了为什么会出现语法错误,因为
{if(){..}}
不是有效的对象

删除函数中的换行符
()
,使其成为函数体而不是返回的对象。然后检查并确保所有大括号和圆括号都匹配,并且应该是正确的


请确保您也修复了
[props.value]:[global.form]
。我假设您打算将其作为对象返回。所以请务必这样做。

感谢您的快速回复和解释。遗憾的是,我仍然无法生成一些干净的代码(我只是没有那么丰富的经验(3周))。