import React from 'react';
import { Router, Link, Navigation } from 'react-router';
export default class ResourceCard extends React.Component {
render() {
return (
<div onClick={this.routeHandler.bind(this)}>
LINK
</div>
);
}
routeHandler(){
this.transitionTo('someRoute', {objectId: 'asdf'})
}
}
我看不懂,怎么了?
我收到错误:
未捕获类型错误:this.transitionTo 不是函数
我已经尝试了在文档或 gitHub 问题中找到的所有内容:
this.transitionTo('someRoute', {objectId: 'asdf'})
this.context.transitionTo('someRoute', {objectId: 'asdf'})
this.context.route.transitionTo('someRoute', {objectId: 'asdf'})
etc.
路线和参数是正确的,在这种情况下工作正常:
<Link to="'someRoute" params={{objectId: 'asdf}}
附: react-router、react 和其他库都是最新的
最佳答案
Navigation
组件是一个 Mixin,需要相应地添加到组件中。如果你想绕过 Mixin(我觉得这是 React-Router 的发展方向),你需要在组件上设置 contextTypes,如下所示:
var ResourceCard = React.createClass({
contextTypes: {
router: React.PropTypes.func
}, ...
然后你可以调用this.context.router.transitionTo
。
关于React-router transitionTo 不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32033247/