当前位置: 首页 > 知识库问答 >
问题:

react router-哈希更改时未呈现任何组件

司寇阳朔
2023-03-14

我使用Rails与反应宝石和react-router.js内部资产。我使用webpack为了使用需要

我有我的路线内的应用程序。js:

var Router = require('react-router').Router;
var Route = require('react-router').Route;
var Link = require('react-router').Link;
var ReactDOM = require('react-dom');
var browserHistory = require('react-router').browserHistory;

ReactDOM.render((
    <Router history={browserHistory}>
        <Route path="/" component={Welcome}>
            <Route path="hello" component={Hello}/>
            <Route path="welcome" component={Welcome}/>
            <Route path="about" component={About}/>
            <Route path="*" component={NoMatch}/>
        </Route>
    </Router>
), document.getElementById('root'));

另外es6。jsx:

var Hello = React.createClass({
    render: function () {
        return (
            <div>
                <h3>Hello component</h3>
                <a href="#about">About</a>
            </div>
        );
    }
});

var Welcome = React.createClass({
    render: function () {
        return (
            <div>
                <h3>Welcome component</h3>
                <a href="#hello">Hello</a>
            </div>
        );
    }
});

var About = React.createClass({
    render: function () {
        return (
            <div>
                <h3>About component</h3>
                <a href="#welcome">Welcome</a>
            </div>
        );
    }
});

var NoMatch = React.createClass({
    render: function () {
        return (
            <h3>No Match</h3>
        );
    }
});

当我访问controller_name/index时,默认情况下,它会呈现带有“#hello”链接的“欢迎组件”文本,但单击时,它不会执行任何操作。它仍然在说“欢迎组件”

我做错了什么?

共有1个答案

钱季
2023-03-14

您只呈现欢迎内容,而不是任何子组件。我希望这能解决它。

var Welcome = React.createClass({
    render: function () {
       if(this.props.children){
            return this.props.children
        }else{
          return (
             <div>
                <h3>Welcome component</h3>
                <a href="#hello">Hello</a>
             </div>
           );
       }
    }
});
 类似资料:
  • 我正在寻找一种通过改变散列来改变部分样式的方法。让我以一个例子来解释: > 当前URL为: 然后单击复选框,URL将更改为: 我想更改类的。 我尝试了以下代码,但它不起作用: 实际上,每次哈希更改时,控制台中都不会出现任何内容。

  • 我有一个非常简单的功能组件,它从localStorage获取日期并显示它。我有两个按钮来添加或删除日期后的周数,我希望显示新的日期。但是,该组件不会被渲染。 此组件的预期行为是获取时间戳,然后显示该时间戳的月份和年份。加载时,它正确地显示了2021年1月,但是当我在onLefthtml上单击几次时,它并没有呈现组件,尽管我期望它显示2021年12月。计算是正确的,我想我在这里丢失了功能组件渲染的概

  • 我想重定向到另一个页面 这工作正常,但它首先会变为 我也试着跟随 它正在创建一个正确的URL,但没有向下滚动到id为某个DIV id的 编辑 另外我尝试了

  • 问题内容: 我正在使用react-router寻找一种更新页面URL /哈希的方法,而无需路由器重新渲染整个页面。 我正在开发一个全页轮播,并且希望每个幻灯片都有其自己的URL(允许用户刷新页面并返回正确的幻灯片)。转盘稍后将进行类似于此演示的滑动,这意味着 下 一张幻灯片已预渲染。 我的旋转木马的精简版在这里提供。 当前的幻灯片更改如下所示: 这可以正常工作,没有URL更新。我真正想要的是: 这

  • 在标记为副本之前,请仔细阅读此内容,我向您保证,我已经阅读并尝试了每个人在stackoverflow和github上提出的关于此问题的所有建议。 我在我的应用程序中有一条路线,如下所示; route rendering呈现打开用户角色的组件,并基于该角色惰性加载正确的Routes组件,Routes组件呈现主页的开关。简化后,如下所示。 然后是路由组件 因此,问题是每当用户从/导航到/秒等...应用

  • 导入React,{Component}from'./Routes'导入AppHeader from'.../app-头/AppHeader'导入{路由,交换机,链接,与路由器,使用RouteMatch}from"report-router-dom"函数BaseApp(){let Match=useRouteMatch()返回(Base App Component App Header )}导出默认