Javascript 如何将'this'传递给typeahead.js事件
我正在使用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
此
。以下是当前代码:
$('#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”函数,它可以解决问题。解决方案如下: