2017-11-28 6 views
0

私はパラメータキーとしてドット付き(パス)文字列を受け入れる、安らかなAPIを持っています。フィールド名にredux-formドットを無視する方法はありますか?

例えば、私はこの呼び出すことができますので、私は好きでReduxの形式のフィールドを持っている

/widgets?material.type=iron 

を:

<Field name="material.type" component={TextField} label="material type" /> 

が、私に渡されたときReduxの形式はmaterial.typeでドットを解釈し、ハンドラは{material: {type: 'iron'}}として終了します。

私はこれがデフォルトの動作である理由を理解していますが、代わりに{'material.type': 'iron'}を得ることができるようなプロパティや何かでそれを妨害する簡単な方法があるのでしょうか?

答えて

0

これはできません。 Reduxフォームは、名前にドットが含まれている場合は常にオブジェクトの下にフィールド値をネストします。内部では_.toPathが使用され、文字をエスケープする方法はありません。

あなたが代わりに行うことができますがinitialValuesを割り当てるときに値の名前を変更することです:

initialValues: { 
    ...formData, 
    materialType: formData['material.type'] 
} 

...とフォームを送信:

onSubmit (values) { 
    return submitSomehow({ 
    ...values, 
    'material.type': values.materialType 
    }) 
} 
関連する問題