Open Lienviws opened 1 year ago
我的主应用 router 是通过 hash 变更来改变的,比如:
www.xxx.com/v3/#/space/dataset www.xxx.com/v3/#/space/datasource
但是无界里面路由同步改的是query部分,同步后会导致整个 href 乱掉,比如
www.xxx.com/v3/#/space/dataset -> www.xxx.com/v3/?datamarket=%2Fhome%2Fmarket-list#/space/dataset
我发现并没有相关钩子,因此目前自己的解决方案,是把 wujie 代码拉下来,手动改 sync.ts 文件
// ... if (winUrlElement.href !== window.location.href) { if (typeof sync === 'function') { sync(winUrlElement.href, queryMap[id]); // 外部控制 } else { window.history.replaceState(null, '', winUrlElement.href); } } // ...
把参数拼在hash后的query部分,
<WujieReact sync={(targetUrl, encodeQuery) => { const search = `?params=${encodeQuery}`; const target = `${history.location.pathname}${search}`; if (history.location.search !== search) { window.history.replaceState( null, '', `${location.origin + location.pathname}#${target}` ); } }} />
达到这样的路由效果:
www.xxx.com/v3/#/space/dataset?params=%2Fhome%2Fmarket-list
然后在 load wujie 的时候,手动管理 params 部分。
期望wujie官方可以支持类似的能力。 感谢。
你试试提个pr,混乱的url看起来真的头疼
这个有解决方案吗? 怎么解决的?
我前些天也提了 issue 没回应。现在我是禁用自带的 sync 自己用插件拦截添加钩子,然后由外部自定义怎么 sync
@Naeemo 能分享吗
因为业务需要,我是下载源码到本地直接改的
现象
我的主应用 router 是通过 hash 变更来改变的,比如:
www.xxx.com/v3/#/space/dataset www.xxx.com/v3/#/space/datasource
但是无界里面路由同步改的是query部分,同步后会导致整个 href 乱掉,比如
www.xxx.com/v3/#/space/dataset -> www.xxx.com/v3/?datamarket=%2Fhome%2Fmarket-list#/space/dataset
解决方案
我发现并没有相关钩子,因此目前自己的解决方案,是把 wujie 代码拉下来,手动改 sync.ts 文件
把参数拼在hash后的query部分,
达到这样的路由效果:
www.xxx.com/v3/#/space/dataset?params=%2Fhome%2Fmarket-list
然后在 load wujie 的时候,手动管理 params 部分。
期望
期望wujie官方可以支持类似的能力。 感谢。