React-router transitionTo 不是一个函数

标签 react-router

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/

相关文章:

javascript - React router 在路由时最后追加页面

javascript - React-Router 算法是如何工作的?

javascript - 根路由组件未连接到 redux

javascript - 从快速 session 成功进行身份验证后如何在 react 客户端上验证 session

javascript - 无法使用服务器端渲染访问 DOM - react 0.14.1、react-dom 0.14.1 和 react-router 1.0.0-rc3

reactjs - React Router 在 V6 上滚动到顶部

javascript - 如何运行 redux-router 的基本示例

reactjs - 警告 : Received "true" for non-boolean attribute active

javascript - 如何避免路线冲突?

javascript - 使用传播属性 react 渲染组件列表