1
我學流星,我使用它與反應,我試圖做一個strawpoll應用程序,但我有一個問題,當我想呈現一個strawpoll更新渲染和反應
這裏我的組件爲我StrawpollVote觀點:
export default class StrawpollVote extends React.Component{
constructor(props) {
super(props);
Tracker.autorun(() => {
this.strawpoll = Strawpolls.findOne({ "_id": this.props.match.params.id });
this.render();
});
}
render(){
if (this.strawpoll) {
console.log('strawpoll');
return (
<p>Strawpoll : {this.strawpoll.title}</p>
);
} else {
return (
<p>Strawpoll not found</p>
);
}
}
}
我收到的ID與路線,我覺得strawpoll助理,然後我重新運行的渲染功能,這一切都在Tracker.autorun
聽上的變化,但是當我加載的頁面顯示的視圖,其中Strawpoll not found
而我的控制檯,我可以看到strawpoll
從渲染功能
它只適用於我在自動運行功能上使用this.forceUpdate()
,但這會導致警告,爲什麼渲染不會更新視圖?我錯過了什麼嗎?
你在這裏錯過了很多東西。 'render'函數只返回一個html元素,它不會替換當前的DOM。您應該*從不*手動調用'render'函數。相反,使用'createContainer'將Meteor集合轉換爲React道具。看看官方的Meteor教程或這個[小例子](https://stackoverflow.com/documentation/meteor/3121/meteor-react/15114/displaying-a-mongodb-collection#t=201707242227411539265)。 – aedm