javascript - “位置”是反应中的保留字吗?如果是这样,它有什么作用?
问题描述
const location = 'abc';
const template = <p>Location: {location}</p>;
ReactDOM.render(template, document.getElementById('app'));
上面的代码不断将我的页面重定向到'/abc'。
Babel 将上面的代码编译成:
'use strict';
var location = 'abc';
var template = React.createElement(
'p',
null,
location
);
var appRoot = document.getElementById('app');
ReactDOM.render(template, appRoot);
我怀疑“位置”变量名称是为 React 保留的,但不确定为什么会一直发生这种情况。任何人都可以解释问题是什么?使用 React 时我不应该使用“位置”作为变量名吗?
解决方案
不是特定于 React,而只是与全局location
对象的冲突,它提供了对当前 URL 的访问。
Window.location
只读属性返回一个对象,其中Location
包含有关文档当前位置的信息。尽管 Window.location 是一个只读的 Location 对象,但您也可以为它分配一个 DOMString。这意味着在大多数情况下,您可以像使用字符串一样使用位置:
location = 'http://www.example.com'
是 . 的同义词location.href = 'http://www.example.com'
。
推荐阅读
- javascript - 如何修复“词法声明不能出现在单语句上下文中”
- java - 加载位于 Firebase 存储中的图像
- c# - 在系统中找不到 ToUpper
- java - 如何仅使用 foreach 循环的第一个输出来执行某个任务?
- c# - 我正在尝试向此样式添加验证交互,但找不到该属性。这里有什么问题?
- java - 如何使用 Spring RestTemplate 实现 HTTP POST 请求
- json - 序列化的 JSON 转换为字符串作为 http 请求/休息 API 的有效负载?
- android - RecyclerView 中的文本溢出屏幕
- haskell - 覆盖不同数据类型的函数
- r - 如何使用 `merge` 而不是 `plyr::join(x,y,type='full')`?