私は少し新しく反応して、ここで何をするのか少し失われました。私はfirebaseからデータを読み込み、そのオブジェクトの小道具を.map関数を使ってレンダリングして、ページ上のすべての「コメント」を表示します。これはうまくいきます。また、ユーザーが個々のコメント(マップ内の特定の要素)に返信できるようなコンポーネントを呼びたいと思っていますが、このコードが期待するとおり、返信ボタンをクリックすると、呼び出されたコンポーネントがこれは望ましくない。この場合、マップの1つの要素だけコンポーネントを呼び出すことができますか?反応.map関数内の要素を1つだけ変更する方法は?
changeIsReply() {
this.setState(
{isReply: !this.state.isReply,}
);
}
render() {
return (
<div>
<ul className="list-group">
{Object.values(this.props.commentInfo).map((data) =>
data.map((secondData, i) =>
<div className="commentHolder" key={i}>
<p>{secondData.text}</p>
<p>{secondData.category}</p>
<p>{secondData.organization}</p>
<button> UpButton </button> <br />
<button> DownButton </button>
<button onClick = {this.changeIsReply} > Reply </button>
{this.state.isReply ? <SetComment id={secondData.key} /> : null}
</div>
)
)}
</ul>
</div>
)
}
完璧、ありがとう! –