Как инициализировать избыточную форму значениями из хранилища - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь загрузить форму Redux, предварительно заполненную значениями из магазина.

В настоящее время я могу заполнить форму с избыточностью данными непосредственно из редуктора, но при отправке формы она принимает данные только для интерактивных элементов для создания полезной нагрузки.

Однако я могу получить данные из редуктора для хранения. Мне нужно инициализировать избыточную форму со значениями магазина.

Есть ли лучший способ инициализировать элементы формы значениями из хранилища и передать всю модель в качестве полезной нагрузки?

Я прилагаю к этому редуксную форму.

Форма Redux: -

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

let InitializeFromStateForm = props => {
  const { handleSubmit, pristine, reset, submitting } = props;
  return (
    <form onSubmit={handleSubmit}>
      <div>
        {/* <button type="button" onClick={() => load(data)}>Load Account</button> */}
      </div>
      <div>
        <label>First Name</label>
        <div>
          <Field
            name="first_Name"
            component="input"
            type="text"
            placeholder="First Name"
          />
        </div>
      </div>
      <div>
        <label>Last Name</label>
        <div>
          <Field
            name="last_Name"
            component="input"
            type="text"
            placeholder="Last Name"
          />
        </div>
      </div>


      <div>
        <button type="submit" >Submit</button>
        <button type="button" disabled={pristine || submitting} onClick={reset}>
          Undo Changes
        </button>
      </div>
    </form>
  );
};

// Decorate with reduxForm(). It will read the initialValues prop provided by connect()
InitializeFromStateForm = reduxForm({
  form: 'initializeFromState', // a unique identifier for this form
})(InitializeFromStateForm);

// You have to connect() to any reducers that you wish to connect to yourself
InitializeFromStateForm = connect(
  state => ({
    initialValues: {'first_Name':'sunil','last_Name':'choudhary'}, // pull initial values from account reducer
  }),
//   { load: loadAccount }, // bind account loading action creator
)(InitializeFromStateForm);

export default InitializeFromStateForm;

1 Ответ

0 голосов
/ 14 мая 2018

Функция change делает это проще ... Функция change используется для привязки данных Field с использованием свойства name

Вот пример, чтобы сделать это

Предположим, вы получите данные в componentWillReceiveProps

componentWillReceiveProps(nextProps) {
  const { change } = nextProps
  change('first_Name', 'sunil')
  change('last_Name', 'choudhary')
}

Вы можете найти больше здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...