【问题标题】:Problems using react-router for basic routing after installing it on a new project将 react-router 安装到新项目后,使用 react-router 进行基本路由时出现问题
【发布时间】:2017-03-19 11:35:46
【问题描述】:

大约四天前,我用react-router 创建了一个项目。我按照this guide 正常安装了所有东西。然后我通过官方 Github 自述文件中推荐的方法安装了react-router。出于某种奇怪的原因,它不会渲染我的任何组件,直到我将路由移动到我的根目录中的 index.js 文件,它开始工作。之前,路线位于我的app.jsx 文件中。

今天,我决定为自己创建一个小型作品集网站,因为我觉得我正在了解 React 的基础知识。我像以前一样安装了所有东西,分别带有react-routerreact / react-dom3.0.015.3.2 版本。自从我几天前的上一个项目以来,这些版本没有改变。然而,react-router 似乎由于某种原因不再工作,在我的控制台中没有显示任何错误,我现在花了几个小时在谷歌和 Stack Overflow 上搜索解决方案。我的代码目前非常简单,我的index.js 文件如下所示,没有使用react-router

import React from 'react'
import {render} from 'react-dom'

class App extends React.Component {
    render() {
        return <div>{this.props.children}</div>;
    }
}

const Home = () =>
    <p>Hello</p>;

render(
    <App><Home /></App>,
    document.getElementById('main'))

我知道我应该转向更多的函数式编程,但是出于测试原因,我暂时将 App 写成一个类。现在,为什么上面的代码可以正常工作,但下面的代码 sn -p 却没有任何结果?

import React from 'react'
import {render} from 'react-dom'
import {Router, Route, IndexRoute, hashHistory} from 'react-router'

class App extends React.Component {
    render() {
        return <div>{this.props.children}</div>;
    }
}

const Home = () =>
    <p>Hello</p>;

render(
    (<Router history="hashHistory">
        <Route path="/" component={App}>
            <IndexRoute component={Home} />
        </Route>
    </Router>),
    document.getElementById('main'))

我真的不认为我以任何方式误解了react-router。正如我在一些教程中看到的那样,我已经尝试将路线包装在() 中,但这并没有什么不同——显然。

我的代码有问题吗?或者它可能是别的东西?如果我可以为你们提供更多信息,请告诉我。如果对你们有帮助的话,我可以拍一些屏幕截图之类的。

【问题讨论】:

    标签: javascript html reactjs react-router react-jsx


    【解决方案1】:

    我认为你应该改变

    <Router history="hashHistory">
    

    <Router history={hashHistory}>
    

    路由器期望历史是一个对象,而不是字符串:

    var Router = _react2.default.createClass({
      displayName: 'Router',
    
        propTypes: {
        history: object
    
        (...)
    });
    

    【讨论】:

    • 这实际上不是问题。不过,这是我发布此内容后很快注意到的一个错误。问题实际上是通过webpack-dev-server 运行的。当我简单地运行webpack 并通过浏览器启动index.html 时,它似乎工作正常。你知道这是为什么吗?
    猜你喜欢
    • 2019-01-07
    • 2022-06-15
    • 2021-05-21
    • 2018-08-06
    • 2019-03-17
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多