当我加载react-redux应用程序的主页时,我收到了错误
遇到错误" TypeError:无法读取属性'搜索'的 未定义"当预渲染App时 {"位置":" /""货币":" USD"}
我在以下代码中遇到错误
const UrlParser = {
getQueryVariable: (variable) => {
let query = window.location.search.substring(1);
let vars = query.split('&');
for (let i = 0; i < vars.length; i++) {
let pair = vars[i].split('=');
if (decodeURIComponent(pair[0]) === variable) {
return decodeURIComponent(pair[1]);
}
}
}
}
export default UrlParser;
任何人都可以帮助我
修改
控制台上的window.location提供
Location {href: "http://localhost:5000/", ancestorOrigins: DOMStringList, origin: "http://localhost:5000", replace: function,
分配:功能......} ancestorOrigins:DOMStringListassign:function()hash:&#34;&#34;主持人: &#34;本地主机:5000&#34; 主机名 : &#34;本地主机&#34; HREF : &#34; http://localhost:5000/&#34; 起源 : &#34; http://localhost:5000&#34; 路径 : &#34; /&#34; 港口 : &#34; 5000&#34;协议:&#34; http:&#34; reload:function reload()replace:function()search:&#34;&#34; toString:function toString()valueOf: function valueOf()符号(Symbol.toPrimitive):未定义 proto :位置
答案 0 :(得分:2)
经过多次讨论后,很难说为什么分配window.location.search.substring(1)
会引发错误。解决此问题的一种方法是使用try catch子句:
getQueryVariable: (variable) => {
let query;
try {
query = window.location.search.substring(1);
} catch(e) {
// window.location.search.substring(1) throws an error, set query
// to fallback value ''
console.log(e);
query = '';
}
let vars = query.split('&');
for (let i = 0; i < vars.length; i++) {
let pair = vars[i].split('=');
if (decodeURIComponent(pair[0]) === variable) {
return decodeURIComponent(pair[1]);
}
}
}
答案 1 :(得分:0)
要回答 window.location未定义的标题问题标题,我浪费了20分钟,是因为我使用了此处给出的大写字母。
https://developer.mozilla.org/en-US/docs/Web/API/Window/location
即Window.location
是错误的,window.location
是正确的。