getValues.js 中的 redux-form 迁移到 v6 抛出错误

redux-form Migration to v6 throwing error in getValues.js

我正在尝试使用 redux-form 的 v6,但 运行 出现了一些相当难以描述的错误。设置很简单,reducer 来自网站:

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-form 的 getValues.js,特别是代码的这个区域:

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

一个想法来自 redux-form 的最底层 v6 migration page 关于升级 react-hot-loader,所以我升级到 3.X 但那没有用。

您正在使用 v6 语法,但 node_modules/redux-form 中的版本是 v5getValues 函数在 v6 中不再存在。

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