React Reducer带有一些严重的语法错误

问题描述 投票:0回答:1

女士们,先生们,你好。我是React的初学者,正在尝试创建Reducer。首先,它至少在语法上是正确的(不确定逻辑)。如果语法完全搞砸,我添加了IF和ELSE之后:

enter image description here

无效的更新版本

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>
reactjs jsx reducers
1个回答
0
投票

(global, dispatch, props) => ({=> (语法表示立即返回。所以你实际写的是:

(global, dispatch, props) => {
  return {
    if(props.type && props.id) {
      return {
        ...
      }
    }
  }
}

因此=> (之后的所有内容实际上都是一个对象。这就是为什么{ if(){..} }不是有效的对象会导致语法错误的原因。

© www.soinside.com 2019 - 2024. All rights reserved.