女士们,先生们,你好。我是React的初学者,正在尝试创建Reducer。首先,它至少在语法上是正确的(不确定逻辑)。如果语法完全搞砸,我添加了IF和ELSE之后:
无效的更新版本
import {addReducer} from 'reactn';
async function reducer() {
addReducer('updateFormValues', (global, dispatch, props) => ({
if(props.type && props.id) {
return {
event: {
...global.form,
[props.type]: {
...global.form.[props.type],
[props.id]: props.value
}
}
}
} else if (!props.type && props.id) ) {
[props.value]: [global.form]
}
}))
}
export default reducer;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
(global, dispatch, props) => ({
,=> (
语法表示立即返回。所以你实际写的是:
(global, dispatch, props) => {
return {
if(props.type && props.id) {
return {
...
}
}
}
}
因此=> (
之后的所有内容实际上都是一个对象。这就是为什么{ if(){..} }
不是有效的对象会导致语法错误的原因。