Map関数によって重要なサポートを提供するEU
5971 ワード
Map関数
基本形態:Array.map(callback(currentValue[, index[, array]])
パラメータ
callback:新しい配列要素を生成する関数です.次の3つのパラメータがあります.
実行結果に戻る値
新しい配列で、配列内の各要素のcallbackを実行した結果を収集します.
Key function NumberList(props) {
const numbers = props.numbers;
const listItems = numbers.map((number) =>
<li>{number}</li>
);
return (
<ul>{listItems}</ul>
);
}
const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
<NumberList numbers={numbers} />,
document.getElementById('root')
);
上記のコードを説明すると、map関数はnumberをliタグとして試行し、numbers配列の長さを実行し、liタグをulタグに包むプログラムであることがわかります.ただし、上記のコードを実行すると、結果はページに表示され、リスト内の各項目にキー値を指定する必要があることを警告します.
So、Keyについて質問すると、Reactはアイテムを変更、追加、または削除するときに識別するのに役立ちます.これは、各要素に一意のidを付与することを意味する.
上記のコードを再割り当てして変更すると、コードは次のようになります.function NumberList(props) {
const numbers = props.numbers;
const listItems = numbers.map((number, index) =>
<li key={index}>
{number}
</li>
);
return (
<ul>{listItems}</ul>
);
}
const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
<NumberList numbers={numbers} />,
document.getElementById('root')
);
変換Map関数の主体は配列であるため、各要素のインデックス値ほどユニークな値はありません.ただし、エレメントを途中で削除すると、付与されたキー値とその配列のインデックス値が変化する現象が発生します.したがって、インデックスもキー値として使用するのに適していません.したがって、多くの場合、データのid値をキーとして使用する.id値(ex.数値)がない場合は、toString()関数を使用してデータ型をstringに変換します.
Keyの伝統的な方法を使う
function NumberList(props) {
const numbers = props.numbers;
const listItems = numbers.map((number) =>
<li key={number.toString()}>
{number}
</li>
);
return (
<ul>{listItems}</ul>
);
}
const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
<NumberList numbers={numbers} />,
document.getElementById('root')
);
Key(SNSにコメントを表示する)の使用例
function Comment(comment) {
let commentArray = comment.comment;
return commentArray.map((props) => {
return (
<div key={props.id}>
<span className="userid">{props.userid}</span>
{props.comment}
</div>
);
});
}
Reference
この問題について(Map関数によって重要なサポートを提供するEU), 我々は、より多くの情報をここで見つけました
https://velog.io/@bangi/Map-함수에서-key-props를-부여하는-EU
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
function NumberList(props) {
const numbers = props.numbers;
const listItems = numbers.map((number) =>
<li>{number}</li>
);
return (
<ul>{listItems}</ul>
);
}
const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
<NumberList numbers={numbers} />,
document.getElementById('root')
);
function NumberList(props) {
const numbers = props.numbers;
const listItems = numbers.map((number, index) =>
<li key={index}>
{number}
</li>
);
return (
<ul>{listItems}</ul>
);
}
const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
<NumberList numbers={numbers} />,
document.getElementById('root')
);
function NumberList(props) {
const numbers = props.numbers;
const listItems = numbers.map((number) =>
<li key={number.toString()}>
{number}
</li>
);
return (
<ul>{listItems}</ul>
);
}
const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
<NumberList numbers={numbers} />,
document.getElementById('root')
);
function Comment(comment) {
let commentArray = comment.comment;
return commentArray.map((props) => {
return (
<div key={props.id}>
<span className="userid">{props.userid}</span>
{props.comment}
</div>
);
});
}
Reference
この問題について(Map関数によって重要なサポートを提供するEU), 我々は、より多くの情報をここで見つけました https://velog.io/@bangi/Map-함수에서-key-props를-부여하는-EUテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol