montieren habe ich die folgenden Komponente reagieren, dieReact Scroll-Position festlegen, bevor Komponente
render(){
const messages = this.props.messages;
return(
<div id="project_chat">
<h1>{this.props.project[0].project}</h1>
<div className="chat_room">
<div className="messages" ref="messages">
<Waypoint onEnter={this.activateWayPoint}/>
<ul>
{messages.map((message) => {
return(
<Message key={uuid.v4()} message={message}/>
)
})}
</ul>
</div>
<div className="chat_message_box">
<input type='text' onChange={this.handleChange} value={this.state.message} className="message_box" placeholder="enter message"/>
<button className="submit_message" onClick={this.handleSubmit}>Submit</button>
</div>
</div>
</div>
)
}
das Problem i-Box an der obersten Position des Behälters beginnt die Chat-Nachrichten konfrontiert im Wesentlichen eine Chat-Box (Scroll-Position beginnt an der Spitze). Ich wollte, dass die Scroll-Position wie ein normaler Chat-Raum unten ist.
so habe ich versucht, dies zu tun:
componentDidMount(){
this.refs.messages.scrollTop = this.refs.messages.scrollHeight
}
dies löst, nachdem die Komponente d.h montiert wird - die Bildlaufposition Meldungsfeld beginnt zunächst an der Spitze und zwingt zum Boden seinen Weg auf machen.
das ist normalerweise in Ordnung, aber ich benutze eine Bibliothek namens react-waypoint
, die mir paginate Chat-Nachrichten helfen würde. Dies wird jedes Mal ausgelöst, wenn ich oben im Container bin.
Die unglückliche Konsequenz ist, dass der Wegpunkt beim mount immer ausgelöst wird, weil das Meldungsfenster am Anfang anfängt.
meine Frage ist, ob ich die Nachrichtenkomponente in der unteren Position nach unten zu Beginn an die Spitze zu beginnen und gehe im Gegensatz zu beginnen zwingen kann
Ich habe versucht, dies zu tun
componentWillMount(){
this.refs.messages.scrollTop = this.refs.messages.scrollHeight
}
die Problem ist, ich habe keinen Zugriff auf Refs bevor die Komponente mounts. Gibt es einen anderen Weg?
funktioniert wunderbar ... danke :) – Kannaj
auch, ist 'this.refs.messages.scrollTop = this.refs.messages.scrollHeight' der richtige Weg, um sicherzustellen, dass Scroll am unteren Rand bleibt? – Kannaj
@Kunkka Es stellt nicht sicher, dass der Bildlauf * unten * bleibt (natürlich, weil Sie scrollen möchten!), Aber ja, so würde ich empfehlen, nach unten zu scrollen. –