1
ボタンをクリックするたびにFieldArray
を押すようにこのコードを書いていますが、それはrenderContract FieldArray
コンポーネント内でのみ適用されます。新しいFieldArrayを外部のレンダリング関数からプッシュするには?
const renderContact = ({ fields, meta: { error } }) => (
<div>
{fields.map((contact, index) => (
<div key={index}>
<div className="row form-pad">
<div className="col-md-3">
<span>Country Code {index + 1}:<span className="requiredField text-danger"> * </span>: </span>
</div>
<div className="col-md-7">
<Field name={`${contact}.landlineCountryCode`} component={renderField}type="text"/>
</div>
</div>
</div>
))}
<button className="btn btn-primary" onClick={() => fields.push({})}>
Add Contact
</button>
</div>
)
と親フォームのコンポーネントでこのようにそれをレンダリング:
<FieldArray name="contact" component={renderContact} />
どのように私はfieldArray外fields.push({})
を使用することができますか?
EDIT:
私は無駄にこれを試してみました:
<button type="button" onClick={() => props.dispatch(arrayPush('PersonalInfoForm', 'contact', [{}]))}> Add Contact</button>
私はこれを試しましたが、 ' 'が動作しませんでした。何か不足していますか? –
arrayPush( 'PersonalInfoForm'、 'contact'、{}) –
私は既に私のバグが何かを理解しました。それであなたの右のすべて。私は私のフォームの名前を自分のコンポーネントの名前とは違うものにします。 'let personalInfoForm = reduxForm({ 形式: 'syncValidation'、 )})(PersonalInfoForm)' –