ページの読み込み時に、メタデータ型をキー名として、メタデータオブジェクトの配列を次のように返すメタデータAPIを呼び出しています。ES6 - オブジェクト内のキーをループして新しいオブジェクトに代入する
メタデータ・オブジェクトは、私は、入力コンポーネント(各オブジェクトは、値とラベルが付いた別のチェックボックスまたはラジオボタンであろう)リアクトとうまくプレイするために簡略化し、変更される必要があります。私は基本的に同じフォーマットを返す必要がありますが、id、display_on、nameなどの代わりに値とラベルキーを使用する必要があります。フォームコンポーネントにprops経由で渡されるデータを変更するには、コンテナコンポーネントで次のようにします。問題は、metadataFormattedForInput
が常に空のオブジェクトを返すことです。
function mapStateToProps(state, ownProps) {
const metadataFormattedForInput = {};
Object.keys(state.metadata).forEach((key) => {
const metadataOptions = [];
state.metadata[key].map(option => (
metadataOptions.push({ value: option.id, label: option.name })
));
return (
Object.assign({}, metadataFormattedForInput, {
[key]: metadataOptions,
})
);
});
return {
metadataOptions: metadataFormattedForInput,
};
}
'metadata'オブジェクトを共有できますか? –
forEachループに戻っても何もしません。 – adeneo
とforEachから戻ってくるのは、なぜ 'state.metadata [key] .map'を使って、結果の配列を捨てるのでしょうか? 'メタデータ[キー] .map(オプション=>({値:option.id、ラベル:オプション。name}); ' –