我目前正在尝试实现一个停止当前路由并提示您输入引脚的流路径触发器功能。
提供引脚后,检查是否正确;用户将继续他们要求的路线。
我已经包含了我的Flow路由器路由,输入触发器功能和下面的引脚提示功能:
路由器上的停止事件正常。 引脚捕获功能也没有问题。 然而,当将其推入FlowRouter.go()时,抓取成功请求的路径也会起作用;网址会发生变化但应用不会遵循此路线。
// Flow Router route
StaffRoutes.route('/browse', {
name: "browseAccounts",
triggersEnter: [enterPin],
action: function() {
BlazeLayout.render('cardLayout', {
main: "browseSearch"
})
}
});
// Enter PIN code trigger function
function enterPin(context, redirect, stop) {
// saving the requested route for after pin login success
let route = FlowRouter.current();
Session.set('redirectAfterPin', route.path);
// this just shows a hidden pin pad
showPinPrompt();
// stopping the current route
stop();
}
// pinPromptSubmission
function pinSubmission() {
// presume pin is correct
if (pinIsCorrect) {
// grab requested path and initiate FlowRouter go
let newPath = Session.get('redirectAfterPin');
FlowRouter.go(newPath);
}
}
如果有人知道为什么这不起作用,请告诉我!感谢
答案 0 :(得分:1)
我的代码看起来很相似。我没有使用FlowRouter.current找到路径,而是使用了context.path。我没有使用stop(),而是使用redirect()。这是我的代码。
FlowRouter.route("/loans/apply", {
name: "loanApplication",
action(params) {
renderLayoutWith(<LoanApplicationContainer />, "Apply Loan");
},
triggersEnter: [redirectAnonymous]
});
function redirectAnonymous(context, redirect) {
if(!Meteor.userId()) {
redirect('/login?redirectUrl=' + context.path);
}
}