首页 > 解决方案 > “位置”是反应中的保留字吗?如果是这样,它有什么作用?

问题描述

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 时我不应该使用“位置”作为变量名吗?

标签: javascriptreactjs

解决方案


不是特定于 React,而只是与全局location对象的冲突,它提供了对当前 URL 的访问。

Window.location只读属性返回一个对象,其中Location包含有关文档当前位置的信息。

尽管 Window.location 是一个只读的 Location 对象,但您也可以为它分配一个 DOMString。这意味着在大多数情况下,您可以像使用字符串一样使用位置:location = 'http://www.example.com'是 . 的同义词location.href = 'http://www.example.com'


推荐阅读