我有兩個鏈接,它提取示例組件,但當我點擊其中任何一個它被加載,當我點擊另一個它不會重新呈現只有網址得到改變。我想重新渲染組件上的兩個鏈接點擊。有沒有辦法做到這一點?關於網址更改我想重新呈現我的組件我應該怎麼做
回答
當我正在做一個反應項目時,我曾經遇到類似的問題。
您需要在組件中使用componentWillReceiveProps函數。
componentWillReceiveProps(nextProps){
//call your api and update state with new props
}
爲了更清楚在運行通過調用URL www.example.com/content/a componentDidMount()
首次您的組件加載時。
現在,當你點擊另一個鏈接時,比如說www.example.com/content/b調用了相同的組件,但是這次prop改變了,你可以在componentWillReceiveProps(nextProps)
下訪問這個新的prop,你可以使用它來調用api並獲取新數據。
現在你可以保持一個共同的功能說_initializeComponent()和componentDidMount()和componentWillReceiveProps()調用它
您的路由器會是這個樣子: -
ReactDOM.render((
<Router history={browserHistory}>
<Route path="/content" component={app}>
<IndexRoute component={home}/>
<Route path="/content/:slug" component={component_name} />
</Route>
</Router>
), document.getElementById('app'));
所以,現在你的時候請致電www.example.com/content/a,a將被視爲slug。在該組件中,如果您致電www.example.com/content/b,b將被視爲slug,並將作爲componentWillReceiveProps中的nextProps參數提供。
希望它有幫助!
謝謝@Harkirat –
你可以upvote並接受答案@SharadPawar –
我應該如何使用componentWillReceiveProps函數中的nextProps? –
- 1. 我想運行「HttpAsyncTask」...我該怎麼做?
- 2. 關於jquery關聯數組我應該怎麼做?
- 3. 我怎麼做基於此網址
- 4. 我該怎麼做,我應該
- 5. 我想更新現有記錄我該怎麼辦?
- 6. 我想點擊重定向然後更改按鈕文本,我該怎麼做?
- 7. 我應該怎麼做?
- 8. (mongo)ID數組:我應該怎麼做?
- 9. 想要將img更改爲鏈接,我該怎麼做?
- 10. 我該怎麼做?
- 11. 我該怎麼做?
- 12. 如果我想隱藏我的textarea,我該怎麼做?
- 13. 我想添加一天到我的約會我該怎麼做
- 14. 我有JSON。現在我想在一個頁面上呈現它。我該怎麼做。
- 15. 我應該更改網址seo
- 16. 一個基於AJAX的WordPress網站。我應該怎麼做?
- 17. 對於使用stimulsoft的繁重報告,我應該怎麼做?
- 18. 在Node.js Mongoose中,我想更新每個字段......我該怎麼做?
- 19. 我想現在開發metro應用程序。我該怎麼辦?
- 20. 我無法更新表格。我應該怎麼寫更新表
- 21. 我該怎麼做? XSLT ..我無法更改標題級別
- 22. 我不想選擇隱藏的元素,我該怎麼做?
- 23. 我怎麼能在Ruby中呈現的網址上軌
- 24. 我想呈現
- 25. 我想更改索引中的網址
- 26. 我需要更改當前數據框的格式。我應該怎麼做?
- 27. 我該怎麼做? nope
- 28. 我該怎麼做MongoDB中
- 29. 我該怎麼做WKWebView
- 30. 我該怎麼做(遊戲)?
你有沒有嘗試過使用反應路由器?在github頁面的教程涵蓋了這個 – akashrajkn