2017-02-28 103 views
0

我有一個容器組件,它的參數爲?"type=specificType"。當該參數通過鏈接改變時,我想重新渲染數據的不同子集。React路由器 - 當查詢參數發生變化時,render()不會觸發

你會如何處理這個問題?
例如: 頁面上的鏈接 - ALL | FISH | BIRDS | MAMMALS

該路線是http://baseURL/animals,並將呈現所有動物。

當這個鏈接被選中<Link to="/animals?type=birds" />我想重新渲染的頁面只有BIRDS的動物的子集,但沒有觸發這種變化。

任何有關如何做到這一點的建議?

非常感謝!

回答

0

嗯,我不能相信我以前沒有想過這個,但答案很簡單。我將一個處理程序傳遞給具有過濾器鏈接的組件。當任何給定的鏈接被選中時,「更新」方法簡單地調整數據並從那裏調用render()方法。

感謝您的輸入。

0

取而代之的是Link的,你可以把一個Button並在onClick處理程序可以調用this.forceUpdate()this.setState(this.state)觸發重新繪製,然後使用手動react-router

0

你總是可以聽路由變化通過使用重定向:

browserHistory.listen()

基本上我把它放在一個變量' routeListener'並在'componentWillMount()'上調用它。並運行'handleRouteChange()'我想調用的任何方法。

並確保通過調用'componentWillUnMount()'中的routeListener()來停止偵聽器。

​​

我希望這能解決您的問題。祝你好運

相關問題