【问题标题】:React application is redirected to unspecified routeReact 应用程序被重定向到未指定的路由
【发布时间】:2018-09-08 11:43:51
【问题描述】:

我是前端开发的新手,我正在努力学习 ReactJS。在我的一个示例应用程序中,我使用“live-server public”命令在我的本地主机上启动应用程序以用于开发目的。

package.json 内容

{
  "name": "indecision-app",
  "version": "1.0.0",
  "main": "index.js",
  "author": "Phani Kumar",
  "license": "MIT",
  "dependencies": {
    "babel-preset-env": "1.5.2",
    "babel-preset-react": "6.24.1"
  }
}

我的应用程序正在使用 babel 编译并使用 live-server 自动启动。

"use strict";
var app = {
    title: 'Indecision App',
    subtitle: 'put your life in the hands of a computer',
    options: ['one','two']
};

function showOptions(){
    if (app.options.length > 0){
        return <p>Here are your options</p>
    }else {
        return <p>No Options</p>
    }
}

var template = (
    <div>
        <h1>{app.title}</h1>
        {app.subtitle && <p>{app.subtitle}</p>}
        {showOptions()}
        <ol>
            <li>Item one</li>
            <li>Item two</li>
        </ol>
    </div>
);

var user = {
    name: 'phani',
    age: 30,
    location: 'Bangalore'
};
var userName = 'PhaniKumar Yadavilli';
var age = 30;
var location = "Bangalore";

function getLocation(location){
    if (location){
        return <p>Location: {location}</p>;
    }else {
    return undefined;
    }
}

var templateTwo = (
    <div>
        <h1>{user.name ? user.name : 'Anonymous'}</h1>
        {(user.age && user.age >= 18) && <p>Age: {user.age}</p>}
        {getLocation(user.location)}
    </div>
);
var appRoot = document.getElementById('app');


ReactDOM.render(templateTwo, appRoot);

在我点击 URL 127.0.0.1:8080 的那一刻,应用程序被重定向到 127.0.0.1:8080/Bangalore。我尝试调试,但我无法理解这种重定向的原因。

index.html 内容

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf8">
        <title>Indecision App</title>
    </head>
    <body>
        <div id="app"></div>
        <script src="https://unpkg.com/react@16.0.0/umd/react.development.js"></script>
        <script src="https://unpkg.com/react-dom@16.0.0/umd/react-dom.development.js"></script>
        <script src="/scripts/app.js"></script>
    </body>
</html>

【问题讨论】:

    标签: reactjs babeljs npm-live-server


    【解决方案1】:

    var location = 'Bangalore'; 语句触发重定向,因为location 是 JavaScript 中的保留字,表示浏览器 URL。将变量重命名为不同的名称


    编辑:正确重定向一个人会这样做:window.location = 'somewhere to go to'

    var location = '' 更像是一个“错误”

    【讨论】:

    • 谢谢。学到了一些新东西。
    猜你喜欢
    • 2021-09-09
    • 2016-03-30
    • 2018-07-04
    • 2020-09-05
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    相关资源
    最近更新 更多