我正在嘗試使用ReactJS,並試圖瞭解如何觸發子組件呈現。在ReactJS,如果我設置了這樣一個例子:爲什麼這個子組件不會重新提交?
var externalCounterVar = 10
class Counter extends React.Component {
constructor(props){
super(props);
this.state = props;
}
render() {
console.log('rendering counter')
return (
<div> {externalCounterVar} </div>
)
}
}
class Main extends React.Component {
constructor(props){
super(props);
}
handleClick() {
externalCounterVar += 1;
}
rerender(){
this.render();
}
render() {
console.log('rendering');
return (
<div>
<button onClick={this.rerender.bind(this)} />
<Counter counter={externalCounterVar} />
</div>
)
}
}
ReactDOM.render(<Main />, document.getElementById('root'));
我不知道我理解爲什麼當你「重新呈現」它調用主要的渲染方法,但不是櫃檯?它看起來應該調用兩種渲染方法,因爲它的渲染方式Main和Counter是Main的子項。
所以當rerender被調用時,'渲染'將會打印,但'渲染計數器'不會。
我只是搞亂了API,知道這是一個反模式。 – Rob