gpt4 book ai didi

javascript - 使用没有导航混合的 router.transitionTo() React Router 1.0

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:23:07 24 4
gpt4 key购买 nike

有没有更简单的方法从组件访问 Router 对象来执行诸如调用 transitionTo() 之类的事情而不使用 Navigation mixin?这是一个 ES6 组件。目前在像按钮点击这样的事件上,我一直在写这样的东西:

class Button extends React.Component {
handleClick(e) {
e.preventDefault();
var router = this._reactInternalInstance._context.router;
router.transitionTo('/search');
}

render() {
return (
<button onClick={this.handleClick.bind(this)}>
{this.props.children}
</button>
);
}
}

最佳答案

根据 Mat Gessel的评论,将上下文作为参数添加到构造函数中将使您能够访问路由器。

class Button extends React.Component {
constructor(props, context) {
super(props, context);
this.context = context;
}

handleClick(e) {
e.preventDefault();
this.context.router.transitionTo('/search');
}

render() {
return (
<button onClick={this.handleClick.bind(this)}>
{this.props.children}
</button>
);
}
}

Button.contextTypes = {
router: React.PropTypes.object.isRequired
};

关于javascript - 使用没有导航混合的 router.transitionTo() React Router 1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31469091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com