ho appena imparato reagire, e voglio realizzare una funzione: sia A, B sono componenti, se un rotolo, poi B scorrimentocambiamento scrollTop in reactjs
Quello che segue è il mio codice
<A onScroll="handleScroll"></A>
//what i write now
handleScroll: function(event){
var target = event.nativeEvent.target;
//do something to change scrollTop value
target.scrollTop += 1;
// it looks the same as not use react
document.getElementById(B).scrollTop = target.scrollTop;
}
ma in realtà io voglio che il mio codice come questo
//what i want
<A scrollTop={this.props.scrollSeed}></A>
<B scrollTop={this.props.scrollSeed}></B>
//...
handleScroll(){
this.setState({scrollSeed: ++this.state.scrollSeed})
}
è simile al input
<input value="this.props.value"/>
<input value="this.props.value"/>
<input ref='c' onChange={handleChange}>
//...
handleChange: function() {
// enter some code in c and then render in a and b automatically
}
In altre parole, voglio qualche attributo, come scrollTop
(diversa forma <input value={}>
, perché <A scrollTop={}>
non funziona), si legano con uno stato, in modo che io possa basta usare setState
e si aggiorneranno da soli.
Ho cercato su Google ma non riesco a trovare il risponditore. Spero che il mio povero inglese non ti confonda.
Grazie per il vostro aiuto! E ho scoperto che non c'è bisogno di usare 'ReactDOM.findDOMNode()', 'this.refs.elem' è abbastanza (e risparmia anche il 10% di utilizzo della mia CPU,^_ ^); Prima di ciò, provo solo a mettere il mio codice in 'componentWillMount', ma shoule be' componentDidUpdate'; Dopo tutto, grazie ancora; – edeity
@edeity, questo è molto vero; rivisto. – Season