redux-form 6.0.0-rc.5を使用しています。ユーザが入力したフォーム値を表示しようとしています。redux-form:別のコンポーネントにフォーム値を表示する方法
しかし、これらの値をreduxフォーム自体ではなく、別のコンポーネントから表示したいとします。
だから、私の単純化されたアプリケーション・アーキテクチャは、そのようになります:
<App /> -> (main component -container ?-)
<List /> -> (connect to form values and pass them down)
<Elem /> -> (display form value)
<Form /> -> (enter form values)
コンポーネントはReduxの形式は「形」に搭載され、働いています。 (状態form.formName.valuesから)フォームの値を得るための良い方法と私のディスプレイのコンポーネントに送信します何
Form = reduxForm({
form: 'formName'
})(Form)
?私が試してみました
もの:
接続のApp店とmapStateToProps(form.formName.values)に続い小道具として表示するためにそれを渡します。しかし、ユーザーが何かを入力するまで、フォームの状態で値が存在しないので、エラーをスローします。
const Elem = ({ name }) => ( <li>{name}</li> )
を
Elemの:リストコンポーネント内Reduxの形式により提供getFormValues( 'formNameフォーム')関数を使用して、それが機能または未定義を返す
リスト
const List = ({ values }) => (
{values.map(value => <Elem name={value.name} />)}
)
List = connect(
state => ({
values: getFormValues('formName')
})
)(List)
私は行方不明のものがあるか、またはそれがredux-formかreduxかにかかわらず、私はまだ正しく理解していません...私は誰かが私を啓発できることを願っています!
ありがとうございました。
はい。 'formValueSelector'が答えです。 –
あなたの答えをありがとう。私は、フォームの値を選択するのを見ましたが、私のドキュメントの理解は次のとおりです。getFormValues関数は、アプリケーション内の任意の場所(タブの「セレクタ」)のすべての値を素早く取得する方法です。また、formValueSelectorは、フォーム内で使用するために還元型で特定の値(必ずしもすべての値を意味するわけではありません)を取得するように作成されました。あれは正しいですか ? formValueSelectorを使用する必要がある場合は、すべてのフォームフィールドをセレクタに関連付ける必要がありますか?もう一度ありがとう! –
編集:オールライト、私はそれがformValueSelectorで作業作られたが、その後、私はgetFormValuesで再びそれを試してみましたが、これが今の私のために働いている正確な構文です: 'constのセレクタ= getFormValues(「fomName」) 一覧=接続(私の元の質問の他の構文は機能していませんでした。{状態=>({値:セレクタ(状態)})}(リスト) ' たぶん誰かを助けるでしょう! –