【发布时间】:2021-04-30 11:28:56
【问题描述】:
每当在 Message 中发送新消息时,我都想滚动到 div 的底部。我可以用 jQuery 做到这一点,但想知道 React 中最好的方法是什么。
这是我所在的 Messages.js 组件。提前谢谢!
const Messages = (props) => {
const [inputMessage, setInputMessage] = useState('');
const handleChange = (event) => {
setInputMessage(event.target.value);
}
const handleSubmit = (event, message) => {
event.preventDefault();
props.setRoomMessages([...props.roomMessages, {id: Date.now(), name: props.username, message: inputMessage}]);
setInputMessage('');
}
const messages = props.roomMessages.map((message, index) => {
return (
<Message
key={index}
name={message?.name}
message={message?.message}
/>
)
})
return (
<>
<div className="Messages">
{messages}
</div>
<form className="chat-input form-inline" onSubmit={handleSubmit}>
<div className="form-group">
<input
className="form-control"
type="text"
value={inputMessage}
placeholder="Type a message..."
onChange={handleChange}
/>
<button className="btn btn-link">Send</button>
</div>
</form>
</>
)
}
export default Messages;
【问题讨论】:
-
有一些方法可以将 jQuery 集成到 React 中(尽管你应该尽可能避免这样做)。您可以使用 vanilla javascript 实现相同的功能。检查这个问题的例子:stackoverflow.com/questions/270612/scroll-to-bottom-of-div
标签: javascript reactjs react-hooks