Javascript 如何将'this'传递给typeahead.js事件

Javascript 如何将'this'传递给typeahead.js事件,javascript,jquery,reactjs,typeahead.js,react-router,Javascript,Jquery,Reactjs,Typeahead.js,React Router,我正在使用typeahead.js库在我的应用程序中进行搜索。我已经完成了以下搜索,但不幸的是,最后我无法访问此。以下是当前代码: $('#search-field').typeahead({hint:false, minLength: 2}, { configSetings: settings, }).bind('typeahead:select', function(obj, datum) { this.history.pushState(null, `/term/${datum.p

我正在使用typeahead.js库在我的应用程序中进行搜索。我已经完成了以下搜索,但不幸的是,最后我无法访问
。以下是当前代码:

$('#search-field').typeahead({hint:false, minLength: 2}, {
  configSetings: settings,
}).bind('typeahead:select', function(obj, datum) {
  this.history.pushState(null, `/term/${datum.permalink}`);
});
我试图调用
.bind(this)
typeahead:select
事件,但当我这样做时,我最终出现了一个错误,其中指出:

未捕获类型错误:m.push不是一个函数

我不知道如何解决这个问题。有什么想法吗?我正在使用ReactJS、Webpack和Typeahead.js

这个怎么样:

$('#search-field').typeahead({hint:false, minLength: 2}, {
  configSetings: settings,
}).bind('typeahead:select', (function(obj, datum) {
  this.history.pushState(null, '', `/term/${datum.permalink}`);
}).bind(this));
这个怎么样:

$('#search-field').typeahead({hint:false, minLength: 2}, {
  configSetings: settings,
}).bind('typeahead:select', (function(obj, datum) {
  this.history.pushState(null, '', `/term/${datum.permalink}`);
}).bind(this));

元素没有
历史记录
,它是一个
窗口
property@charlietfl这是使用react路由器的reactjs,我已经导入了历史模块。这实际上是向组件添加了一个历史记录属性。请改用箭头函数。元素没有
历史记录
,它是一个
窗口
property@charlietfl这是使用react路由器的reactjs,我已经导入了历史模块。这实际上是在组件中添加了一个历史记录属性。请改用箭头函数。因此,这两个函数目前都不起作用:(我没有意识到您正在使用react router+history模块。您可以发布更多代码和/或创建一个可运行的示例,如JSFIDLE等吗?这里有一个要点:我已经解决了问题。.这是调用.bind的位置(此)。如果将其附加到“typeahead:selected”函数,它将解决问题。解决方案如下:因此,在这一点上,这两种方法都不起作用:(我没有意识到您正在使用react router+history模块。您可以发布更多代码和/或创建一个可运行的示例,如JSFIDLE等吗?这里有一个要点:我解决了问题。这是调用.bind(此)的位置。如果将其附加到“typeahead:selected”函数,它可以解决问题。解决方案如下: