私は予想通りこれがうまくいかないことに本当に驚いています。地図の後に反応したアイテムだけが表示されます
私がサイトを訪問する人は、ユーザーのメッセージの上に置いたときにユーザー名を表示したいです。以下は私がこれまで持っていたコードです。問題は、メッセージ上にカーソルを置くと、マップされた配列のすべてのユーザー名が表示されることです。これを変更して1つのユーザー名にするにはどうすればよいですか?私は別のコンポーネント内の各ユーザーのメッセージに状態を変更する必要があると思います
は、しかし、私はこれはneccessaryであるべきと思っていないでしょう。
class App extends Component {
state = {
showUsername: false
};
showUsername =() => {
this.setState({
showUsername: true
});
}
hideUsername =() => {
this.setState({
showUsername: false
});
}
render() {
let messageArr = this.props.messages.map(msg => {
let name = `${msg.firstName} ${msg.lastName}`;
return(
<div key={msg.id}>
{this.state.showUsername && (
<span>{name}</span>
)}
<li><span onMouseEnter={this.showUsername} onMouseLeave{this.hideUsername}>{msg.message}</span></li>
</div>
);
});
return (
<ul>
{messageArr}
</ul>
);
}
}