私が作業しているReactアプリケーションのためにreduxフォームを使用していますが、reduxフォームバージョンはV.6です。ウィザードスタイルのフォームも使用しています(各フィールドセットが完了したら、ユーザーは「次のステップに進む」ボタンをクリックしてフォームの次のセクションを記入できます)。だから、私がしたいのは、ユーザーが "配送と配送"フィールドセットを記入したときに、 "請求と支払い"のフィールセット(フォームの次のフィールセット)が、配達 "フィールドセット。どちらも同じフィールドセットです。フォームが既にレンダリングされた後に "reduxフォームの"入力フィールドに入力する方法
残念ながら、ユーザーがフォームに値を入力したときにフォームが既にレンダリングされるため、私はintialValues propを使用できないようです。私はまた、reduxフォームがこのメソッドのファンではないように見えるので、バックエンドで手動でreduxフォームの値を設定する問題にぶつかります。値を手動で設定することはできますが、入力フィールドで更新することはできません
私は、今のところ私は戻ってそれらの変更を行うことはできないので、すべてが一つの大きなフォームとしてとどまる必要があります。
誰でもアドバイスやご意見がありましたらお知らせください。
<form>
<ShippingAndDelivery
checkFieldsetProgress={this.checkFieldsetProgress}
handleUpdatingDeliveryType={handleUpdatingDeliveryType}
availableShippingTypes={availableShippingTypes}
shippingType={shippingType}
handleShippingRequest={handleShippingRequest}
recieveShippingError={recieveShippingError}
shippingError={shippingError}
/>
<BillingAndPayment
checkFieldsetProgress={this.checkFieldsetProgress}
handlePopulateBillingAddress={handlePopulateBillingAddress}
promoCodeValue={promoCode}
/>
</form>
私がする必要がある場合には、ES6クラスでも状態やすべてのものを持つので、私のことが可能混乱です:
フォームはこのようになりますダウン易しく書き直さ。
のfieldset要素(そうShippingAndDeliveryとBillingAndPayment)は、この様およびコンポーネントを使用します。
class shippingAndDelivery extends React.Component {
render() {
const {
whatEverPropsNeeded
} = this.props;
return (
<div>
<Fields
names={[
'address_shipping',
'email_shipping'
]}
component={RenderedFields}
whatEverPropsNeeded={whatEverPropsNeeded}
/>
</div>
)
}
}
const RenderedFields = (fields) => (
<div className={style.container} onChange={fields.updateProgress(fields)}>
<Col md={8}>
<fieldset>
<div className={style.title}>
<p>Shipping Address</p>
</div>
<Col md={12}>
<BasicInput
input={fields.email_shipping.input}
meta={fields.email_shipping.meta}
disabled={false}
placeholder="Email Address"
/>
</Col>
<Col md={12}>
<BasicInput
input={fields.address_shipping.input}
meta={fields.address_shipping.meta}
disabled={false}
placeholder="Address Line 1"
/>
</Col>
</div>
</fieldset>
</div>
);
redux-forms this.props.changeを初期化する値、つまりthis.props.change( 'valueFromBillingAndPayment'、valueToShow)を使用してみます。この値は2番目のステップで表示されます。または、enableReinitializeオプションを使用してフォームを設定してください。詳しくは、http://redux-form.com/6.0.0-rc.4/docs/api/ReduxForm.md/を参照してください。 – elmeister