React-Router - 我可以在反应路由器的浏览器历史记录中获取下一个路径字符串,或检查是否有前进的东西?

时间:2016-12-19 20:21:31

标签: javascript reactjs react-router electron browser-history

我正在使用React在Electron上创建应用程序,我想在浏览器中复制navegation的功能。

我有一个goBack和goForward按钮,我希望在下一个没有任何内容时禁用goForward,并在后面有nothgin时禁用goBack,就像浏览器那样。

所以我有反应路由器,我用

进行操作

browserHistory.goBack() browserHistory.goForward()

所以我想要一种方法来检测接下来的那个并禁用按钮。可以对下一个和后一个路径字符串进行geeting或检查是否存在某些内容。

1 个答案:

答案 0 :(得分:0)

根据历史记录https://github.com/mjackson/history#navigation,您可以使用var choices = []; var previousChoice; function Remove(choice) { choices.push(choice); $(".ddlConfidence") .each(function () { $(this).find("option[value=" + choice + "]option:not(:selected)").remove(); }); } function Add(choice) { choices.splice(choices.indexOf(choice), 1); $(".ddlConfidence") .each(function () { var sel = $(this); if (sel.find("option[value=" + choice + "]").val() === undefined) { sel.append($("<option></option>").attr("value", choice).text(choice)); } var selected = sel.val(); var opts_list = sel.find('option'); opts_list.sort(function (a, b) { return parseInt($(a).val()) > parseInt($(b).val()) ? 1 : -1; }); sel.html('').append(opts_list); sel.val(selected); }); } $(document) .on('focus', ".ddlConfidence", function () { previousChoice = parseInt($(this).val()); }); $(document) .on("change", ".ddlConfidence", function () { $(this).blur(); var currentChoice = parseInt($(this).val()); if (previousChoice > 0 && currentChoice > 0) { Remove(currentChoice); Add(previousChoice); } else if (currentChoice === 0) { Add(previousChoice); } else { Remove(currentChoice); } }); 来检查操作是否可行,我认为canGo(n)检查是否可以继续进行canGo(1)当goind向后