标签: react-router-component

React router v4不能与Redux一起使用

使用React router v4开发React应用程序.一切顺利,直到我在我的应用程序中介绍了Redux.从那以后点击链接更改路由,浏览器URL会发生变化,但是路径对应的组件没有加载.如果我注释掉Redux代码,它会很好用.可能是什么导致了这个?这是我的路由代码:

import React, { Component } from 'react';
import { Switch, Route, Link } from 'react-router-dom';
import LeftSubDefault from './../components/left-sub-default.component';
import LeftSubOne from './../components/left-sub-one.component';
import LeftSubTwo from './../components/left-sub-two.component';
import { withRouter } from 'react-router-dom';
import { connect } from "react-redux";
import { goToLeftDefault, goToLeftOne, goToLeftTwo } from "./../actions/leftRouteActions.js";

class LeftComponent extends Component {
  render() {
    return (
      <div className="col-xs-6">
          <p>
            Current sub route: {this.props.currentRoute}
          </p>
          <ul>
            <li onClick={this.props.goToDefault}><Link to={'/'}>Go To Default</Link></li>
            <li onClick={this.props.goToSub1}><Link to={'/left-sub1'}>Go To One</Link></li>
            <li onClick={this.props.goToSub2}><Link …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router-component redux react-redux react-router-v4

19
推荐指数
1
解决办法
1万
查看次数

如何使用react路由器生成站点地图

我正在试图弄清楚如何在reactJS服务器端(快速)Web应用程序中动态生成站点地图.我正在使用反应路由器.

server-side reactjs react-router react-router-component

18
推荐指数
2
解决办法
1万
查看次数

React Router v4动画转换示例

v4文档中提供的动画转换示例对我来说似乎有点费解,因为它描绘了淡入淡出相同的组件并调整背景颜色.

我正在尝试将这种技术应用于一个更真实的例子,将一个组件淡出另一个组件,但是我无法使其正常工作(它似乎只是淡出第一个,然后第二个弹出in,此转换只能以一种方式工作(后退按钮不会转换).

这是我的代码,它使用MatchWithFade示例中的精简版本:

import React from 'react';
import { TransitionMotion, spring } from 'react-motion'
import { HashRouter, Match, Miss } from 'react-router';
import Home from './components/Home';
import Player from './components/Player';
import FormConfirmation from './components/FormConfirmation';

const App = () => (
  <HashRouter>
    <div className="App">
      <MatchWithFade exactly pattern="/" component={Home} />

      <MatchWithFade pattern="/player/:playerId" component={Player} />

      <MatchWithFade pattern="/entered" component={FormConfirmation} />

      <Miss render={(props) => (
        <Home players={Players} prizes={Prizes} {...props} />
      )} />
    </div>
  </HashRouter>
);

const MatchWithFade = ({ component:Component, ...rest }) …
Run Code Online (Sandbox Code Playgroud)

transition reactjs react-router react-router-component

13
推荐指数
1
解决办法
1884
查看次数

React Router - 如何实现标签式导航?

我是React的新手并使用React开发我的第一个应用程序.我的应用程序有一个带有4个选项卡的选项卡组件,每个选项卡的内容都设置为一个单独的组件.现在我用4种不同的路线替换标签.所以,我摆脱了选项卡,并使用react-router来设置4条路由,每条路由一条4个.

使用选项卡时,选项卡的内容将在导航到其他选项卡并返回时保持其状态.例如,假设选项卡有一个列表,用户已滚动到列表的底部.如果用户导航到另一个选项卡并返回,则列表将保持滚动到底部.这是我的应用程序所需的行为.

但是,我无法通过路由实现此行为.我注意到当我从一个路径导航到另一个路径时,组件被重新实例化(不仅仅是重新渲染).我可以这样说,因为每当组件的路由变为活动状态时,就会调用组件的构造函数.

我想实现类似于tab的行为.我知道对于Angular,有一个UI-Router-Extras库,它提供深度状态重定向(用于类似标签的导航).它在我的Angular项目中运行得非常好.但我找不到React的类似选项.我尝试过react-router和react-router-component,并在路由变为活动状态时重新实例化组件.

是否有解决方案来实现React中的路由类似行为?

reactjs react-router react-router-component

8
推荐指数
1
解决办法
1058
查看次数

不变违规:根路由必须在react-router 2动态路由中呈现单个元素错误

我有简单的Hello World App,其中一条路线没有子路线或索引路线.使用普通路由而不是jsx sysntax 路由我.我再次使用react-router的动态路由来加载带有webpack的Hello组件.我的app.jsx文件包含以下代码.

import React from "react";
import ReactDOM from "react-dom";
import {Router, browserHistory} from "react-router";
import Hello from "./components/Hello";



const routes = [{
    path:"/",
    getComponents(location, callback) {
        require.ensure([], function (require) {
            callback(null, require('./components/Hello'))
        })
    }
}];


ReactDOM.render(
    <Router history={browserHistory}  routes={routes}/>,
    document.getElementById("container")
); 
Run Code Online (Sandbox Code Playgroud)

Hello.jsx组件具有以下代码

import React from "react";
export default class Hello extends React.Component {

    render() {

        return (
            <h2>Hello World</h2>
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

reactjs webpack react-router react-router-component

7
推荐指数
1
解决办法
5030
查看次数

6
推荐指数
1
解决办法
5059
查看次数

未捕获错误:不变违规:元素类型无效:对象

我正在摆弄react-router,试图实现简单的路由.我在他们的例子中写了我的代码(但没有imports)https://github.com/rackt/react-router#whats-it-look-like.

我在浏览器中收到此错误:

未捕获错误:不变违规:元素类型无效:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object.

这就是我的工作.

我在页面上附加脚本,ReactRouter.min.js我的代码在react-routes.js.而且还reactreact-dom和jQuery(所有三个app.js):

<script src="/js/app.js" type="text/javascript" charset="utf-8"></script>
<script src="https://npmcdn.com/react-router/umd/ReactRouter.min.js"></script>
<script src="/js/react-routes.js" type="text/javascript" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)

这是我的react-router.js,尚未编译:

'use strict';
window.Router = window.ReactRouter;
window.Link = window.ReactRouter.Link;
window.Route = window.ReactRouter.Route;

const Foo = React.createClass({
    render() {
        return (
            <div>
                <h1>HELLO, me FOO</h1>
            </div>
        )
    }
});

ReactDOM.render((
    <Router>
        <Route path="/" >
            <Route path="/page/one" component={Foo}/>
        </Route>
    </Router>
), document.getElementById('content-section'))
Run Code Online (Sandbox Code Playgroud)

这是我react-router.js与Babel汇编后的.我在页面上正好附上了这个:

babel --presets react -o …

reactjs react-router react-router-component react-routing

5
推荐指数
1
解决办法
6274
查看次数

react-router“无法读取未定义的属性“ push”

我是新来的反应和反应路由器。

react的问题在于,在我的应用程序的某些页面上,react-router正在工作,并且出现如下错误:“无法读取未定义的属性'push'”。

我正在使用反应0.14.1

我的路由代码如下所示:

render(
<Router history={hashHistory}>
  <Route path="/" component={Loginpanel}/>
  <Route path="Index" component={Index}/>
  <Route path="Form" component={Form} />
  <Route path="Checkindex" component={Index}/>

  <Route path="Signup" component={Signup}/>
  <Route path="Admin" component={Admin}/>
  <Route path="AdminEditDetails" component={AdminEditDetails}/>
  <Route path="AdminDetails" component={AdminDetails}/>


</Router>,
document.getElementById('js-main'));
Run Code Online (Sandbox Code Playgroud)

我的组件现在是这样的:

class  App extends React.Component {

  constructor(props) {
    super(props);
    this.state= {      
      comments: AppStore.getAll();
    };
  }

  componentWillMount() {  
    var length = this.state.comments.length;
    var firstnumber = length - 4;

    if(length == 0){
      console.log("here comes");
      this.props.router.push('/');
    }
    else{
      console.log('work normally');
    }
  }

}
Run Code Online (Sandbox Code Playgroud)

谁能帮我这个?谢谢。

javascript reactjs react-router react-router-component

5
推荐指数
3
解决办法
2万
查看次数

发送404状态并重定向到react-router中的404组件

我有一个带有NotFound组件的react-router 3.0.0设置,我将其作为后备显示:

<Route component={NotFound} path="*"/>
Run Code Online (Sandbox Code Playgroud)

但是,这会返回重定向,Google抓取工具会抱怨软404.我可以重定向到我的NotFound组件并发送404,类似于Github的例子吗?我从这里尝试了以下建议:如何让路由器响应404状态代码?

<Route component={NotFound} path="*" status={404}/>
Run Code Online (Sandbox Code Playgroud)

但这只是给了我404而没有显示组件.

如何实现上述目标?

reactjs react-router react-router-component react-routing

5
推荐指数
1
解决办法
1328
查看次数

React:如何在使用react-router-component导航时提示未保存的更改

Redux状态为未保存的更改保留标志,如果设置了此标志,我想在导航时单击用户(单击链接).我正在使用react-router-component.我没有在文档中找到如何做到这一点.

html javascript reactjs react-router-component redux

4
推荐指数
2
解决办法
1792
查看次数