如果前进后退操作是介于两个声明的不同的路由组件间,那么由于会触发组件的componentWillMount,从而加载对应后台数据。
但是,在列表页面("list/:page"),由于前进后退只是更改了hash中的page参数,并没有引起组件切换,在此场景下, 如何优雅的实现列表数据的对应更新?
如果前进后退操作是介于两个声明的不同的路由组件间,那么由于会触发组件的componentWillMount,从而加载对应后台数据。
但是,在列表页面("list/:page"),由于前进后退只是更改了hash中的page参数,并没有引起组件切换,在此场景下, 如何优雅的实现列表数据的对应更新?
不知你有没有使用 redux
, 如果使用了可以监听 LOCATION_CHANGE
, 我目前是这样做的。
import { LOCATION_CHANGE } from 'react-router-redux';
其实你留意观察你会发现,当你切换路由的时候都会(anyway)触发 @@router/LOCATION_CHANGE
这样一个 action type
6 回答2.3k 阅读
3 回答2.1k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
通过获取url或者hash,通过判断动态的更新你的state。
像这种组件没有移除和重新装在的情况,组件无法自动更新。