请教下,目前getInitialProps无法获取location对象,那如何获取到url中的query参数列表?

这些不足以获取你需要的东西么?按理说不应该啊
这些不足以获取你需要的东西么?按理说不应该啊
不能满足啊,例如我url是这样的:http://localhost:8000/index?cid=110 我需要拿到cid来做一些处理,上面几个固定参数貌似都拿不到啊
这些不足以获取你需要的东西么?按理说不应该啊
已经看了好多文档了,貌似都没有这样获取的方式,难道现在前端开发不需要这样传参数吗?不应该啊。。
history里面没有location么?
history里面没有location么?
我这一直都拿不到history, history是undefined的
看看例子或者提个复现
看看例子或者提个复现
我把官方的例子跑了一遍,发现ssr是可以拿到的,但是csr就是undefined了,我想要的时候csr也能拿的到
这样吧,先用isServer判断是否是ssr,在ssr里用history.location,如果isServer是false,表示在csr状态,那么直接用window.location吧
isServer只在getinitalprops里面拿得到,csr模式下也是建议用history,可以看看这个https://umijs.org/zh-CN/api#withrouter,应该都是有的。
这样吧,先用isServer判断是否是ssr,在ssr里用history.location,如果isServer是false,表示在csr状态,那么直接用window.location吧
这是个好办法
这样吧,先用isServer判断是否是ssr,在ssr里用history.location,如果isServer是false,表示在csr状态,那么直接用window.location吧
之前就是太纠结ssr与csr一致问题了,没想到这个
这样吧,先用isServer判断是否是ssr,在ssr里用history.location,如果isServer是false,表示在csr状态,那么直接用window.location吧
isServer只在getinitalprops里面拿得到,csr模式下也是建议用history,可以看看这个https://umijs.org/zh-CN/api#withrouter,应该都是有的。
多谢两个大佬了

csr模式下也是有的,跑下例子吧https://github.com/umijs/umi/tree/master/examples/ssr-koa
csr模式下也是有的,跑下例子吧https://github.com/umijs/umi/tree/master/examples/ssr-koa
你那版本多少的,我本地就是跑这个,是拿不到的,对了,我是用umi dev跑起来的,没有直接跑server.js

提个复现吧,不知道你是啥环境,用的最新版本的
提个复现吧,不知道你是啥环境,用的最新版本的
我没加什么,就是master分支拉下来直接跑的
提个复现吧,不知道你是啥环境,用的最新版本的
@williamnie 我已经用 @leftstick 的方案解决问题了,这个问题先关了吧,再次感谢啊
3.2.9中 ssr node端 history.location 没有解析出query, 在req对象中有search,也需要自己解析。
export const getQueryVariable = (locationSearch: string, variable: string) => {
if (locationSearch.startsWith('?')){
locationSearch = locationSearch.substring(1);
}
var vars = locationSearch.split('&');
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
if (decodeURIComponent(pair[0]) == variable) {
return decodeURIComponent(pair[1]);
}
}
console.log('Query variable %s not found', variable);
return '';
}
Most helpful comment
3.2.9中 ssr node端 history.location 没有解析出query, 在req对象中有search,也需要自己解析。