标签: react-routing

使用反应路由器当前路由在菜单上有条件地设置活动类

我正在使用react router 1.0.2,我的路由如下所示:

ReactDOM.render(
  <Provider store={store}>
    <Router history={history}>
      <Route path="/" component={App}>
        <IndexRoute component={Home}/>
        <Route path="triangles" component={Triangles}/>
      </Route>
    </Router>
  </Provider>,
  document.querySelector('.container')
);
Run Code Online (Sandbox Code Playgroud)

我的应用程序组件看起来像这样,我想我可以传递道具中的位置:

import React, {Component} from 'react';

import Menu from './menu';

export default class App extends Component {
  render() {
    return (
      <div>
        <Menu/>
        <div className="jumbotron">
         {this.props.children && React.cloneElement(this.props.children, {
            location: this.props.location
          })}
        </div>
      </div>
    );
  }
};
Run Code Online (Sandbox Code Playgroud)

我想在Menu组件上有条件地设置一个活动类:

import React, {Component} from 'react';

import { pushPath } from 'redux-simple-router';
import { Link } from 'react-router';

    export default class Menu …
Run Code Online (Sandbox Code Playgroud)

reactjs react-routing

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

如何在Microsoft IIS上使用react router(createBrowserHistory)来使路由工作?

我正在使用react-router(createBrowserHistory)作为我的反应应用程序.

以下是我的代码

var ReactDOM = require('react-dom') ;

var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var Link = ReactRouter.Link;
var browserHistory = require('react-router');
var createBrowserHistory = require('history/lib/createBrowserHistory');

var CL = require('./page1/1.jsx');
var Validation = require('./page3/3.jsx');
var Infos = require('./page4/4.jsx');
var Confirm = require('./page7/7.jsx');
var Upload = require('./page8/8.jsx');

module.exports = (

  <Router history={new createBrowserHistory()}> 
    <Route path='/' component={CL}></Route>                                                                                                                                     
    <Route path='/validation' component={Validation}></Route>                                                                                                                                     
    <Route path='/infos' component={Infos}></Route>                                                                                                                                     
    <Route path='/confirm' component={Confirm}></Route>                                                                                                                                     
    <Route path='/upload' component={Upload}></Route>                                                                                                                                     
  </Router>
)
Run Code Online (Sandbox Code Playgroud)

Wen在本地运行IIS,我在浏览器上访问localhost,我可以获得"CL"组件并在页面上显示,但是,如果我去/验证,我会得到

Failed to load resource: the …
Run Code Online (Sandbox Code Playgroud)

javascript iis reactjs react-router react-routing

9
推荐指数
3
解决办法
9567
查看次数

使用React v0.14.3实现路由器

我正在使用React和Material-UI创建一个应用程序,我也包含了React-router.但是当我运行我的应用程序时,我得到以下错误(Uncaught TypeError:(0,_reactDom.ReactDOM)不是一个函数).

我使用的是React v0.14.3和React-Router v1.0.2

BodyComponent我写了一个不同的文件,我将它导入我的main.js

我试过ReactDOM.render但是我得到了以下错误

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

我为此创造了小提琴:

https://jsfiddle.net/69z2wepo/23814/

以下是我的代码:(更新的代码)

'use strict';
import React from 'react';
import mui from 'material-ui';
import PhysicalView from './playground/PhysicalViewComponent';
import DataTable from './DataTableComponent';
const AppBar = require('material-ui/lib/app-bar');
require('styles//Body.sass');

const LeftNav = require('material-ui/lib/left-nav');

const MenuItem = mui.MenuItem;
const injectTapEventPlugin = require('react-tap-event-plugin');
injectTapEventPlugin();


var menuItems = [{
  route: 'device-view',
  text: 'Device'
}, {
  type: MenuItem.Types.SUBHEADER,
  text: '123'
}, {
  route: 'ola',
  text: 'ola'
}, {
  route: 'bridges',
  text: 'Bridges'
}, {
  route: …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-jsx react-router react-routing

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

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

我正在摆弄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-native-router-flux,如何获取当前场景关键

嘿,我在尝试使用react-native-router-flux时获取当前场景关键。

我的路线文件:

const AppRouter = connect()(Router)

class Routes extends Component {
  render() {
    function selector(props) {
      console.log(props)
      // GoogleAnalytics.trackView(props.navigationState)
      return props.auth.isLoggedIn ? (props.auth.isVerified? 'home': 'authenticate') : 'authenticate'
    }

    const component = connect(state => ({
      auth: state.auth,
    }))(Switch)

    return (
      <AppRouter>
        <Scene key="root" component={component} tabs selector={selector} hideNavBar hideTabBar>
          <Scene key="authenticate" hideTabBar>
            <Scene type="replace" key="login" title="Login" initial component={GradientBackground(LoginScreen)} hideNavBar/>
            <Scene type="replace" key="register" component={GradientBackground(RegisterScreen)} hideNavBar/>
            <Scene type="replace" key="forgotPassword" title="forgotPassword" component={GradientBackground(ForgotPasswordScreen)} hideNavBar/>
            <Scene type="replace" key="emailConfirmation" component={GradientBackground(EmailConfirmationScreen)} hideNavBar/>
          </Scene>
          <Scene key="home" component={NavigationDrawer} type="replace">
            {require('./scenes/home')}
          </Scene> …
Run Code Online (Sandbox Code Playgroud)

routing react-native react-routing

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

发送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
查看次数

如何使用反应路由通过 ID 返回页面?

我是 React 的新手,当我单击View按钮时,我很难弄清楚如何返回一个新页面(一个组件)。我有一个用户表,每行都有一个查看按钮。我只能在完全相同的页面中检索数据,但我想在另一个页面中检索我的视图详细信息,其 url 上的 id,例如:http://user-details-1。有人可以帮我弄这个吗。谢谢!

这是我的视图代码/组件:

import React, { useState, useEffect } from "react";
import Form from "react-bootstrap/Form";

const ViewUserDetaiils = (props) => {
  const [user, setUser] = useState(props.currentUser);

  useEffect(() => {
    setUser(props.currentUser);
  }, [props]);

  return (
    <Form>
      <div>
        <div>
          <strong>Id:</strong> {user.id}{" "}
        </div>
        <div>
          <strong>Name:</strong> {user.name}{" "}
        </div>
        <div>
          <strong>Contact:</strong> {user.contact}{" "}
        </div>
        <div>
          <strong>Email:</strong> {user.email}{" "}
        </div>
      </div>
    </Form>
  );
};

export default ViewUserDetails;
Run Code Online (Sandbox Code Playgroud)

这是我的路由:

import React, { Component } from "react";
import …
Run Code Online (Sandbox Code Playgroud)

reactjs react-routing react-router-dom react-functional-component

4
推荐指数
1
解决办法
4717
查看次数

使用 react-router 和 browserHistory 进行 React 所需的最低 nodejs 服务器设置

我当前的 server.js:

let express = require('express');
let harp = require('harp');
let path = require('path');

let app = express();

app.use(express.static(__dirname + "/dist"));
app.use(harp.mount(__dirname + "/dist"));

let port = process.env.PORT || 3333;
app.listen(port, () => console.log("Listening on port " + port) );

// ... other routes for data fetching ...

// For browserHistory: https://github.com/reactjs/react-router/blob/1.0.x/docs/guides/basics/Histories.md
app.get('*', (req, res) => {
  res.sendFile(path.resolve(__dirname, 'dist', 'index.html'));
});
Run Code Online (Sandbox Code Playgroud)

当我在mysite.com/. 但是,如果我输入mySite.com/someRoute,它会中断。具体来说,我在控制台中看到以下内容:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:3333/dashboards/styles/normalize-3.0.3.min.css".
...
Uncaught …
Run Code Online (Sandbox Code Playgroud)

browser-history node.js reactjs react-router react-routing

3
推荐指数
1
解决办法
1314
查看次数

有没有办法在反应路由中隐藏查询字符串中的参数?

有没有办法从反应应用程序的网址中删除查询字符串?

this.history.push('component/:id')

我希望在导航时从浏览器 URL 中删除 id。

routes reactjs react-routing react-router-v4 react-router-dom

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

如何使用React-Router默认显示路由

我是React的新手,我想开发一个单页应用程序,所以我正在使用react-router四路由.

在main.js下面,我指定路线

import React from 'react';
import {Router,Route} from 'react-router';
import {App} from './components/App';
import {Login} from './components/Login';
import {Home} from './components/Home';
import { history } from 'react-router';

React.render(
<Router history={history}>
    <Route path="/" component={App}>
        <Route path="home" component={Home}/>
        <Route path="login" component={Login}/>

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

然后是App.js,你可以看到我希望有一个固定的页眉和页脚,然后根据路线改变页面的内容.

import React from 'react';
import {Header} from './Header';
import {Footer} from './Footer';

export class App extends React.Component {


render() {
    console.log(this.props.children);
    return (<div>
        <Header/>
        <div className="page-content">
            {this.props.children}
        </div>
        <Footer/>
    </div>);
}


}
Run Code Online (Sandbox Code Playgroud)

使用此代码,一旦应用程序加载了路径("/"),我需要单击主页链接以显示主页内容,但是我希望在首次加载应用程序时默认显示.

我怎样才能做到这一点?

谢谢!!

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

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