Reactの再帰コンポーネント

ほとんどの人は再帰の概念に精通している必要があると思います。そうでない場合は、このリンクを通過してください。

例は何かを説明するための最良の方法なので、例も取り上げます。

ネストされたコメントのコンポーネントを作成する必要があるとします(コメントがあり、そのコメントに返信すると、ネストされた形式で表示される必要があります)
。参照用の画像を次に示します。

それでは、問題を2つの部分に分けてみましょう。
パート1:コメントの通常のリストのコンポーネントを作成します。
パート2:ネストされたコメントのコンポーネントを変更します。

あなたはここで完全に機能するコードを見つけることができます

パート1:コメントの通常のリストのコンポーネントを作成します。
まず、コメントの配列の状態を維持します。

const getDate = () => {
var today = new Date();
return (
today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate()
);
};
const getTime = () => {
var today = new Date();
return today.getHours() + ":" + today.getMinutes();
};
const [commentsArray, setCommentsArray] = useState([
{
username: Jen,
userId: 1,
date: getDate(),
time: getTime(),
content: "How Artistic!",
replies: [
 {
 username: Elliot,
 userId: 2,
 date: getDate(),
 time: getTime(),
 content: "True",
 replies: []  //This represents the nested comment
 }
]
}
]);

//inside return statement of parent component
<div>
{commentsArray.map((item, index) => {
return (
 <CommentItem
 key={index}
 getDate={getDate}
 getTime={getTime}
 item={item}
 />
);
})}
</div>

これは、CommentItemコンポーネントがどのように見えるかです。

import React, { useState }from 'react'
//props.item is each comment
function CommentItem(props) {
return (
<div>
<div>{props.item.username}</div>
<div>{props.item.date} at {props.item.time}</div>
</div>
)
}
export default CommentItem

const nestedComments = (props.item.replies || [])
.map((item, index) => {
return (
<CommentItem
 item={item}
 key={index}
/>
);
});

この定数をCommentItemのreturnステートメントに追加します。したがって、最終的なコンポーネントは次のようになります。

import React, { useState }from 'react'
//props.item is each comment
function CommentItem(props) {
const nestedComments = (props.item.replies || [])
.map((item, index) => {
return (
<CommentItem
 item={item}
 key={index}
/>
);
});
return (
<div>
<div>{props.item.username}</div>
<div>{props.item.date} at {props.item.time}</div>
<div>{nestedComments}</div>
</div>
)
}
export default CommentItem

今のところ以上です。質問がある場合は、singhajendra1998 @ gmail.comまでご連絡ください。

提案された投稿

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

はじめに 脳卒中は、いつでも誰でも起こり得る医療上の緊急事態です。これは、脳の一部への血流が中断され、脳機能が突然失われることで発生します。

Jest — 強力な JavaScript テスト フレームワーク

Jest — 強力な JavaScript テスト フレームワーク

テストはソフトウェア開発において不可欠な部分です。これにより、コードの信頼性が保証され、期待どおりに機能し、エラーの可能性が軽減されます。

関連記事

ドメイン名に関する情報の検索

Brian P. Hogan 著『Small, Sharp Software Tools』からの抜粋

ドメイン名に関する情報の検索

facebook.com にリクエストを送信すると、コンピュータはドメイン名を検索してそのドメイン名を IP アドレスに変換し、コンピュータが接続できるようにします。

仕事週間で学ぶことはあなたが思っている以上に重要です

仕事週間で学ぶことはあなたが思っている以上に重要です

私たちは、自分にとって良いとわかっていることを実行するのに苦労していることによく気づきます。大切な人に愛していると伝えることから、海賊のように話すことを忘れないことまで、すでにそうしたことを行っているため、1日、1週間、または1か月のイベントは必要ないと主張する人が常にいます。

ポッドキャストが影響力を持つ理由は何ですか?

ポッドキャストが影響力を持つ理由は何ですか?

先週、私はPressGazette(英国のメディアニュースウェブサイト)経由で送信されたプレスリリースに気づきました。この記事は、スカンジナビアのポッドキャスト ホスティングおよび広告会社である Acast が、ポッドキャスティングにおいて「おそらく最も影響力のある」パブリッシャーのコンソーシアムを率いることになると発表しました。

お子様向けの初めてのハイになる本

お子様向けの初めてのハイになる本

(警告 - これは風刺であり、大喜びで破壊的な意図があります - 絶対に子供向けではありません) あなたは、お母さんとお父さんがキッチンに隠れて臭いタバコを吸っているのを見たことがあるでしょう。彼らはあなたに言います。