[解決済み] Reactでオブジェクトの配列をマップする方法
2022-03-02 20:28:46
質問
オブジェクトの配列があります。 このオブジェクトの配列をマッピングしたいのですが、どうすればよいですか?配列をマッピングする方法は知っていますが、オブジェクトの配列をマッピングする方法がわかりません。 以下は、私がこれまでに行ったことです。
マッピングしたいオブジェクトの配列 :
const theData = [
{
name: 'Sam',
email: '[email protected]'
},
{
name: 'Ash',
email: '[email protected]'
}
]
私のコンポーネント:
class ContactData extends Component {
render() {
//works for array
const renData = this.props.dataA.map((data, idx) => {
return <p key={idx}>{data}</p>
});
//doesn't work for array of objects
const renObjData = this.props.data.map(function(data, idx) {
return <p key={idx}>{data}</p>
});
return (
<div>
//works
{rennData}
<p>object</p>
//doesn't work
{renObjData}
</div>
)
}
}
ContactData.PropTypes = {
data: PropTypes.arrayOf(
PropTypes.obj
),
dataA: PropTypes.array
}
ContactData.defaultProps = {
data: theData,
dataA: dataArray
}
何が足りないのでしょうか?
解決方法は?
必要なのは、オブジェクトの配列をマップすることです。すべての項目がオブジェクトであることを忘れないように、例えばドット記法を使用してオブジェクトの値を取得します。
コンポーネントで
[
{
name: 'Sam',
email: '[email protected]'
},
{
name: 'Ash',
email: '[email protected]'
}
].map((anObjectMapped, index) => {
return (
<p key={`${anObjectMapped.name}_{anObjectMapped.email}`}>
{anObjectMapped.name} - {anObjectMapped.email}
</p>
);
})
また、jsxの配列を置くと、それは別の意味を持ち、renderメソッドにオブジェクトを置くだけでなく、配列を置くことができることを忘れないでください。
の私の回答をご覧ください。 配列をjsxにマッピングする
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】Swiftの配列で要素の合計を求める
-
[解決済み】bashでパラメータとして配列を渡す。
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン