forked from gxwebsoft/mp-10550
feat(dealer): 更新经销商申请功能
- 将页面标题从"注册会员"改为"成为经销商" - 在经销商注册成功后触发dealerUser:changed事件以通知其他页面刷新 - 优化API响应处理,当用户未注册为分销商时返回null而不是抛出错误 - 使用useDidShow钩子在页面显示时自动刷新经销商数据 - 添加事件监听器支持通过dealerUser:changed事件主动触发数据刷新
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import {useState, useEffect, useCallback} from 'react'
|
||||
import Taro from '@tarojs/taro'
|
||||
import Taro, { useDidShow } from '@tarojs/taro'
|
||||
import {getShopDealerUser} from '@/api/shop/shopDealerUser'
|
||||
import type {ShopDealerUser} from '@/api/shop/shopDealerUser/model'
|
||||
|
||||
@@ -76,6 +76,23 @@ export const useDealerUser = (): UseDealerUserReturn => {
|
||||
}
|
||||
}, [fetchDealerData, hasUser])
|
||||
|
||||
// 页面返回/切换到前台时刷新一次,避免“注册成为经销商后,页面不更新”
|
||||
useDidShow(() => {
|
||||
fetchDealerData()
|
||||
})
|
||||
|
||||
// 允许业务侧通过事件主动触发刷新(例如:注册成功后触发)
|
||||
useEffect(() => {
|
||||
const handler = () => {
|
||||
fetchDealerData()
|
||||
}
|
||||
// 事件名尽量语义化;后续可在注册成功处 trigger
|
||||
Taro.eventCenter.on('dealerUser:changed', handler)
|
||||
return () => {
|
||||
Taro.eventCenter.off('dealerUser:changed', handler)
|
||||
}
|
||||
}, [fetchDealerData])
|
||||
|
||||
return {
|
||||
dealerUser,
|
||||
loading,
|
||||
|
||||
Reference in New Issue
Block a user