Shiny.onInputChange不是一个函数

我有像我的shiny应用程序中的代码:

$(function() { Shiny.onInputChange('initialHash', parseHashQuery()); }); function parseHashQuery() { var result = {}; location.hash.replace(/^#/, '').split('&').filter(Boolean).forEach(function(part) { var pair = part.split('='); result[pair[0]] = pair[1]; }); return result; } 

但我有错误:

 common.js:59 Uncaught TypeError: Shiny.onInputChange is not a function at HTMLDocument. (common.js:59) at i (jquery.min.js:2) at Object.fireWith [as resolveWith] (jquery.min.js:2) at Function.ready (jquery.min.js:2) at HTMLDocument.K (jquery.min.js:2) 

解决方案是使用shiny的事件:

  $(document).on('shiny:sessioninitialized', function(event) { Shiny.onInputChange('initialHash', parseHashQuery()); }); 

已经定义了Shiny.onInputChange时执行的。

查看源代码 ,Shiny在jQuery ready函数中初始化,但是超时:

 $(function() { // Init Shiny a little later than document ready, so user code can // run first (ie to register bindings) setTimeout(initShiny, 1); });