無法爲我的生活弄清楚這一點。每次調用setState()時,組件都應該重新渲染,對吧?我設置了一系列打印語句,所以我可以看到我的處理程序正在被觸發,但render()不是。請幫我理解這裏出了什麼問題!無法讓React組件重新渲染
這裏是我的代碼的重要部分:
我的構造函數:
constructor(){
super();
this.state = {upvoted:false}
this.handleFavorite = this.handleFavorite.bind(this);
}
我的處理程序:
handleFavorite(event){
event.preventDefault();
console.log("handleFavorite fired");
var query=location.pathname;
query = query.split('/');
var username1=query[2];
var playlist=query[3];
var vote = this.props.data.vote;
var self = this;
if (username1) {
request
.post('/api/endpoint')
.end(function(err, res) {
self.setState({upVoted: true});
self.forceUpdate();
console.log("status "+res.body.status);
});
}
}
我的處理程序調用:
render() {
return (
<div onClick={this.handleFavorite}>stuff</div>
);
}
你怎麼能告訴組件不重新渲染?你把日誌聲明沒有被調用,或者...?請分享應該被調用的渲染函數,而不是。 – LoremIpsum