React Reducer с некоторыми ошибками синтаксиса - PullRequest
1 голос
/ 11 февраля 2020

Я новичок в React и пытаюсь создать Редуктор. Сначала это было по крайней мере синтаксически правильно (не уверен насчет логики c). После того, как я добавил 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>

1 Ответ

1 голос
/ 11 февраля 2020

В (global, dispatch, props) => ({ синтаксис => ( с круглыми скобками после стрелки означает немедленный возврат. Итак, что вы на самом деле написали:

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

То есть все, что после => ( на самом деле является объектом. Это объясняет, почему вы получите синтаксические ошибки, потому что { if(){..} } не является допустимым объектом.

Удалите перенос () в функции, чтобы это было тело функции, а не возвращаемый объект , Затем проверьте и убедитесь, что все ваши скобки и скобки совпадают, и вы должны быть хорошими.

Убедитесь, что вы исправили [props.value]: [global.form] тоже. Я предполагаю, что вы намереваетесь вернуть его как объект. Поэтому убедитесь, что вы делаете это.

...