請教各位師兄了。
我建立了一個元件Component,並在內部中的一個ajax成功回調內,寫了this.context.router.push("/user/list")類似的跳轉功能。同時在元件外寫了Component.contextTypes={ router: React.PropTypes.object.isRequired }。 ajax也成功要求了,但是頁面並沒有跳轉,有點疑問了。 。 。
程式碼結構類似:
class Component extends React.Component{
...
success: function(data) {
alert(data);
this.context.router.push(...)
}
}
Component.contextTypes={
router: React.PropTypes.object.isRequired
}
是不是拿不到this?. 試試用 success()->()
這裡寫一下在網上查找答案時遇到的坑,同時也是為了告訴後來遇到同樣或者相似問題的小白吧,還請相關帖子管理人員別刪:
在Component.contextTypes這兒,我查到過有人把它以這種方式寫到過組件內部:
然而這麼做我這兒始終出問題,就是報錯 Cann't read the property 'push' is not defined。不太明顯為啥呢,先記下來再說吧
"Cann't read the property 'push' is not defined"
這個錯誤確保contextTypes寫好了
並且構造函數調用super是沒有把context弄丟