Reactjs 使用时未定义this.context.history<;链接>;关于子组件

Reactjs 使用时未定义this.context.history<;链接>;关于子组件,reactjs,react-router,Reactjs,React Router,如何填充上下文,以便在react router中使用标记时不会定义历史 我得到的错误是: 未捕获的TypeError:无法读取未定义的属性“pushState” 在函数Link.handleClick的第行: if (allowTransition) this.context.history.pushState(this.props.state, this.props.to, this.props.query); 我使用的是react路由器1.0.0-rc1 顶级路线运行良好。我进入我的主组件

如何填充上下文,以便在react router中使用标记时不会定义历史

我得到的错误是: 未捕获的TypeError:无法读取未定义的属性“pushState”

在函数Link.handleClick的第行:

if (allowTransition) this.context.history.pushState(this.props.state, this.props.to, this.props.query);
我使用的是react路由器1.0.0-rc1

顶级路线运行良好。我进入我的主组件,它显示一个指向“注册”的链接。此链接应将我带到子组件

我的示例应用程序如下所示:

Routes.jsx
============
var React = require('react');
var ReactRouter = require('react-router');
var createBrowserHistory = require('history/lib/createBrowserHistory');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;

var Main = require('./main/main');
var Signup = require('./signup/signup');

module.exports = (
   <Router history ={createBrowserHistory()}>
     <Route path="/app" component={Main}>
       <Route path="/signup" component={Signup}></Route>
     </Route>
   </Router>
);

Main.jsx
===============
var ReactRouter = require('react-router');
var Link = ReactRouter.Link;
module.exports = React.createClass({
  render: function(){
      return <div><Link to="/signup">signup</Link></div>
  }
})
Routes.jsx
============
var React=要求('React');
var ReactRouter=require('react-router');
var createBrowserHistory=require('history/lib/createBrowserHistory');
var Router=ReactRouter.Router;
var Route=ReactRouter.Route;
var Main=要求(“./Main/Main”);
var Signup=require(“./Signup/Signup”);
module.exports=(
);
Main.jsx
===============
var ReactRouter=require('react-router');
var Link=ReactRouter.Link;
module.exports=React.createClass({
render:function(){
返回注册
}
})

我也遇到了同样的问题。确保您的
定义处于您的顶层,而不是嵌入到其他组件中

正在运行的我的版本:

var React = require('react');
var ReactDOM = require('react-dom');
var {useBasename, createHistory} = require('history');
var routes = require('./routes/routes');
var {Router} = require('react-router');

const history = useBasename(createHistory)({
  basename: '/'
})

  ReactDOM.render(
    <Router history={history}>
      {routes}
    </Router>,
    document.getElementById('app'));
var React=require('React');
var ReactDOM=require('react-dom');
var{useBasename,createHistory}=require('history');
var routes=要求(“./路线/路线”);
var{Router}=require('react-Router');
const history=useBasename(createHistory)({
基本名称:'/'
})
ReactDOM.render(
{routes}
,
document.getElementById('app');
My routes.js文件:

var React = require('react');
var { IndexRoute, Router } = require('react-router');
var Route = require('react-router').Route;
var AppContainer = require('../components/AppContainer');
var Index = require('../components/Index');
var Login = require('../components/Login');
var Register = require('../components/Register');

module.exports = (
  <Route path="/" component={AppContainer}>
    <IndexRoute component={Index} />
    <Route path="register" component={Register} />
  </Route>
);
var React=require('React');
var{IndexRoute,Router}=require('react-Router');
var Route=require('react-router')。路由;
var AppContainer=require('../components/AppContainer');
var Index=require(“../components/Index”);
var Login=require('../components/Login');
var Register=require('../components/Register');
module.exports=(
);

我正在做香草通量,我想从我的操作调用history.pushState(null,“/users”),所以我将history作为参数传递给主ES6类的操作调用,这是正确的方法吗?对我来说也是同样的错误,但我通过
this.props.history.push('/',null)得到了解决方案并通过
this.props.history检查它
您还应该可以看到
推送
替换
两个功能