首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应-路由器这是未定义的

反应-路由器这是未定义的
EN

Stack Overflow用户
提问于 2015-05-06 17:52:11
回答 1查看 2.7K关注 0票数 0

未定义的TypeError:无法读取未定义的属性“分派”

这发生在ReactRouter.js中的handleLocationChange中:

代码语言:javascript
复制
      handleLocationChange: function handleLocationChange(change) {
        this.dispatch(change.path, change.type);
      },

这是从我的电话下游到

This.context.transitionTo(“某某物”);

“某物”是我定义的路线之一。为什么“这”是不明确的?

下面是调用代码的组件:

代码语言:javascript
复制
var React = require("react");
var Router = require("react-router");
var { Link } = Router;
var Button = require('core-ui').Button;

var AppointmentsHeader = React.createClass({
    mixins: [React.addons.PureRenderMixin],
    contextTypes: {
        router: React.PropTypes.func
    },

    render: function () {
        console.log("AppointmentsHeader:render");
        var router = this.context.router;
        // default to hidden
        var displayClassInline = "appointments-hide"; // hide/show this element if the current page is Landing Page

        if (this.props.currentState.get('currentState') === "landingPage")
        {
            displayClassInline = "appointments-block-show";
        }
        return (
            <div className={"appointments-header cv-grid " + displayClassInline}>
                <div className="appointments-title">Appointments</div>
                <Button label="Create Appointment Event" style="primary" onClick={this._onClick}/>
            </div>
        );
    },
    _onClick: function() {
        console.log("AppointmentsHeader 'Create Appointment Event' button clicked");
        var newStatus = this.props.currentState.set('currentState', "CreateAppointment");
        this.props.handleChange(newStatus);
        this.context.transitionTo('createAppointmentsEvent');
    }
});

module.exports = AppointmentsHeader;
EN

回答 1

Stack Overflow用户

发布于 2015-05-07 12:04:16

这一行:

代码语言:javascript
复制
this.context.transitionTo('createAppointmentsEvent')

应:

代码语言:javascript
复制
this.context.router.transitionTo('createAppointmentsEvent');

代码语言:javascript
复制
this.transitionTo('createAppointementsEvent')

在您的示例中,您将以两种不同的方式访问单例路由器:

  • 导航混合器
  • 通过contextTypes哈希注入的路由器

API现在非常混乱,因为Ryan走了一条路(完全摆脱了混频器),然后决定“解除”混频器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30084127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档