перенос упрощенной формы на версию 6 вызывает ошибку в getValues.js

#javascript #reactjs #redux #redux-form

#javascript #reactjs #redux #redux-форма

Вопрос:

Я пытаюсь использовать версию 6 redux-формы, но сталкиваюсь с некоторыми довольно неописуемыми ошибками. Настройка проста, редуктор дословно с сайта:

 import { combineReducers } from 'redux'
import { reducer as formReducer } from 'redux-form';

export default combineReducers({
  form: formReducer,
});
  

Затем я создаю прямой компонент без каких-либо полей (я получаю точно такую же ошибку, когда у меня тоже есть поля).

 import React, { Component } from 'react';
import { Field, reduxForm } from 'redux-form';

class LoginForm extends Component {
  render() {
    const { handleSubmit, pristine, reset, submitting } = this.props;

    return (
      <div>
        Form
      </div>
    );
  }
}

export default reduxForm({
  form: 'login' // a unique name for this form
})(LoginForm);
  

Когда я перехожу к своему компоненту, я получаю эту ошибку:

 Uncaught TypeError: Cannot read property 'reduce' of undefined
  

Ошибка указывает на redux-форму getValues.js , и конкретно эта область кода:

 var getValues = function getValues(fields, state) {
  return fields.reduce(function (accumulator, field) {
    getValue(field, state, accumulator);
    return accumulator;
  }, {});
};
  

Одна идея пришла из самого низа страницы миграции redux-form версии 6 об обновлении react-hot-loader, поэтому я обновился до 3.X, но это не сработало.

Ответ №1:

Вы используете v6 синтаксис, но версия в вашем node_modules/redux-form есть v5 . Эта getValues функция больше не существует в v6 .

 rm -rf node_modules/redux-form
npm install --save redux-form
  

Комментарии:

1. Потрясающе, спасибо. Мне пришлось запустить npm i -S redux-form @6, чтобы убедиться, что я получаю самую последнюю и лучшую версию, иначе это ответ!