簡體   English   中英

無法使用handleSubmit捕獲Redux表單字段值

[英]Unable to capture Redux-form Field values with handleSubmit

我正在嘗試將Redux-form v6集成到我的項目中,但無論我嘗試復制示例代碼有多緊密,我都無法獲得有效的redux-form。

一切似乎都正確連接,但handleSubmit函數不捕獲我的表單字段中的任何值。

任何關於這個問題的指導將不勝感激。 我的代碼如下。

從減速機開始,似乎沒有什么事情在這里。

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

export default combineReducers({
  form: formReducer
});

然后,我使用容器組件將表單組件連接到redux表單,它使用所有Redux-form函數很好地裝飾表單組件。

CreateCompany.js

import CreateCompany from '../components/create_company';
import { reduxForm } from 'redux-form';

export default reduxForm({
  form: 'company-submission'
})(CreateCompany);

實際形式如下:

CreateCompany.jsx

<form onSubmit={ handleSubmit(values => {console.log("values",values)})}>

  <div>
    <label htmlFor="group">Group Name (Required)</label>
    <Field name="group" component={FormInput} type="text"/>
  </div>

  <div>
    <Field
      name="group-type"
      component={DropDownSelect}
      selectOptions={this.state.groupTypes}
      id="group-type"
    />
    <label>Group Type</label>
  </div>

  <button type="submit">Log In</button>

</form>

提供給Field組件的文本輸入無狀態函數。

FormInput.js(注意:我必須在輸入標記中包含{...input.value}才能輸入字段。在示例代碼中,只使用{...input} 。)

import React from 'react';

const FormInput = ({ id, type, className, input }) => {
  className = className || "";
  id = id || "";
  return (
    <input id={id} {...input.value} type={type} className={className}/>
  )
}

export default FormInput;

DropDownSelect.js

import React from 'react';

const DropDownSelect = ({ input, selectOptions, id }) => {
  const renderSelectOptions = (selectOption) => (
    <option key={selectOption} value={selectOption}>{selectOption}</option>
  )
  return (
    <select id={id} {...input}>
      {selectOptions.map(renderSelectOptions)}
    </select>
  );
}

export default DropDownSelect;

知道我做錯了什么嗎?

handleSubmit應該在CreateCompany組件之外定義並通過props傳遞給它。 查看示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM