#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, чтобы убедиться, что я получаю самую последнюю и лучшую версию, иначе это ответ!