我正在尝试使用v6的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-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

关于javascript - 从redux形式迁移到v6,getValues.js中出现错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40002960/

10-13 00:15