react 生命周期相关

左侧是加载的目录,对应的路由规则是

<Route path='proxys/:proxyType/:proxyId' component={Proxy}>

右侧Proxy组件,我需要根据proxyid向后台请求数据,

componentWillMount(){
    this.props.onQueryProxyInfo(this.props.proxyId)
}
拿到的数据通过通过redux设置到state当中.

这样好像只能触发一次,当我点击左侧另外一个平级的目录时候不会再请求了.请问我要怎样做?

阅读 2.5k
3 个回答

由于加载的是同一个组价,所以 componentWillMount() 只会触发一次,不要指望多次触发调用里面的方法,我们可以在 shouldComponentUpdate(nextProps, nextState) 方法中判断 path (你需要传入组价)属性是否发生了改变,如果是则重新调用 action 重载数据。

我写的代码跟你略有不同,不过思想基本一致。

path 属性传入组价:
图片描述

判断 path 重载数据:
图片描述

两个方案:

  1. 移动onQueryProxyInfo的执行位置,放到外层容器中,当你点击菜单时就执行。

  2. 添加componentWillReceiveProps方法,做判断重至状态,重新执行onQueryProxyInfo方法

添加componentWillReceiveProp 方法即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题