react 详情页的处理,地址记录条件,搭配路由完成

本文介绍在React应用中如何使用动态路由监听并获取URL参数,以实现如商品详情、交易详情等页面的数据请求。具体讲解了umi框架下动态路由的配置方法,以及如何利用path-to-regexp包从URL中解析出所需参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们经常通过一个地址打开一个详情的页面,比如:商品详情、交易详情

通常是GET请求,然后地址后面衔接了特定的条件字段,如:

问号之后则是我们需要的信息,如何只需要某一个字段,比如:id...

我们也可以这样:

这个874是id的值。

然后是react当中如何实现,思路大体如下:

对system/message/:id 这个动态的路由进行监听

进入监听,则获取到id,然后组装请求,发送...

我用的是umi的约定式路由

如何你用的配置式的路由则在后面手动加一下就行(这个有点o(゚Д゚)っ!)

ok,看代码吧

其中有个pathMatchRegexp方法,用的是path-to-regexp这个包,作用是获取地址当中的数据


export default {
  namespace: 'newsDetails',

  state: {
    newsDetail: {}
  },

  subscriptions: {
    setup({ dispatch, history }) {
      return history.listen(({ pathname, query }) => {
        const match = pathMatchRegexp('/system/message/:id', pathname)
        if (match) {
          dispatch({ type: 'detail', payload: match[1] })
        }
      })
    },
  },

  effects: {
    * detail({ payload }, { call, put }) {
      const data = yield call(http, seeMessage(payload));
      if (data) {
        yield put({
          type: 'querySuccess',
          payload: data,
        })
      }
    }
  },

  reducers: {
    querySuccess(state, { payload }) {
      return {
        ...state,
      newsDetail: payload
      }
    }
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值