2017-08-13 18 views
1

私はFieldArrayの例に従おうとしましたが、renderEmployeesでフィールドの長さがゼロになっています。Reduxフォーム - FieldsArray - フィールドが空で、長さが0です

何が原因なのですか?

enter image description here

class EmployeesContainer extends React.Component { 
    constructor(props) { 
     super(props); 
    } 

    render() { 
     return (
      <div> 
       {this.props.employees && this.props.employees.length > 0 && 
        <FieldArray name="employees" component={renderEmployees}/> 
       } 
      </div> 
     ); 
    } 
} 

const renderEmployees = ({ fields }) => 
    <div> 
     {fields.map((employee, index) => 
      <div key={index}> 
       <Field name={employee.first_name} type="text" component={renderField} className="cell" inputValue={employee.first_name} /> 
       <Field name={employee.uid} type="text" component={renderField} className="cell" inputValue={employee.uid} /> 
      </div> 
     )} 
    </div>; 
+0

完全なコードを教えてください。元のコードには、 'renderEmployees'内にボタンがあり、クリックすると' fields'の内容が変更されます。しかし私はあなたの中に誰も見ない。 – Win

+0

真実 - これは私がBEからの従業員のリストを取得し、initialValues propを介して注入したことによるものです - この質問の範囲外だと私は間違っていましたか? – chenop

答えて

0

まあ、悪いフォームの減速を使用していた問題は、おそらく時代遅れの例から撮影:

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

その愚かな過ちが、降下エラーメッセージが表示されます。 コースの適切な使用法:

import { reducer as reduxFormReducer } from 'redux-form'; 
0

あなたは何の従業員を持っていないし、従業員のリストが空であるときにrenderEmployeesコンポーネントをレンダリングしていないので何も、おそらく、レンダリングされていません。

あなたは、少なくとも1人の従業員を持つようにしたい場合は、それが空のアイテムをレンダリングするような方法で、あなたは空の項目に配列を渡す、フォームにinitialValuesを渡すことができます。

これは、提供したFieldsArrayの例の修正版です。最初のメンバーが1人あります。 CodeSandBoxで

const initialValues = { 
    "members": [ 
    { 
     "firstName": "", 
     "lastName": "", 
     "hobbies": [] 
    } 
    ] 
} 

ReactDOM.render(
    <Provider store={store}> 
    <div style={{ padding: 15 }}> 
     <h2>Field Arrays</h2> 
     <FieldArraysForm onSubmit={showResults} initialValues={initialValues} /> 
     <Values form="fieldArrays" /> 
    </div> 
    </Provider>, 
    rootEl, 
); 

例:

https://codesandbox.io/s/DkWkr6Kr5

+0

ありがとうございますが、従業員はフォームに渡されています... – chenop

関連する問題