Javascript 是";地点“;反应中的保留字?如果是,它有什么作用?
我怀疑“location”变量名是为React保留的,但不确定为什么会发生这种情况。Javascript 是";地点“;反应中的保留字?如果是,它有什么作用?,javascript,reactjs,Javascript,Reactjs,我怀疑“location”变量名是为React保留的,但不确定为什么会发生这种情况。 有人能解释问题出在哪里吗?在使用React时,我不应该使用“location”作为变量名吗 不是特定的反应,只是与提供对当前URL访问的全局对象发生冲突 Window.location只读属性返回一个location对象,其中包含有关文档当前位置的信息 虽然Window.location是一个只读的位置对象,但您也可以为其分配DOMString。这意味着在大多数情况下,您可以像处理字符串一样处理位置:locat
有人能解释问题出在哪里吗?在使用React时,我不应该使用“location”作为变量名吗 不是特定的反应,只是与提供对当前URL访问的全局对象发生冲突
Window.location
只读属性返回一个location
对象,其中包含有关文档当前位置的信息
虽然Window.location是一个只读的位置对象,但您也可以为其分配DOMString。这意味着在大多数情况下,您可以像处理字符串一样处理位置:location=http://www.example.com“
是location.href=”的同义词http://www.example.com“
根据我的假设,上面的代码正在运行。您正在定义将成为变量的常量位置 只有在执行位置='abc'或文档时才会刷新。位置='abc'强>
如果我错了,请更正。位置在每个浏览器中都是保留字。谢谢您的回答。因此,我猜在传输的JavaScript中的某个地方,ReactDOM正在创建一个具有指定值“abc”的
Location
对象?将页面重定向到/abc…?分配var位置='abc'代码>是导致这种情况的原因。全局location
对象已经存在,因此var
关键字在此无效(假设整个块在全局范围内)。谢谢您的回答!正如您所说,var location='abc'代码>是问题所在。删除JSX表达式仍然会产生相同的重定向。
const location = 'abc';
const template = <p>Location: {location}</p>;
ReactDOM.render(template, document.getElementById('app'));
'use strict';
var location = 'abc';
var template = React.createElement(
'p',
null,
location
);
var appRoot = document.getElementById('app');
ReactDOM.render(template, appRoot);