javascript - Uncaught (in promise) TypeError: this.getChildrem is not a function
问题描述
我有以下内容:
getitem: function(){
$this.users = $data.data;
$this.users = $this.users.filter( function(item) {
if(item.status === true ) {
if( item.children.length > 0 ){
item.children = this.getChildrem(item.children, true);
}
return item;
}});
},
getChildrem: function(node, estatus){
$children = node.filter( function(item) {
if(item.status === estatus ) {
if( item.children.length > 0 ){
item.children = this.getChildrem(item.children, estatus);
}
return item;
}});
return $children;
},
这是一个简单的递归函数,我只得到状态为“true”的所有项目(父母和孩子),但我遇到了这个错误:
Uncaught (in promise) TypeError: this.getChildrem is not a function
为什么我收到这个错误???
解决方案
当您定义传入的函数时,node.filter
上下文this
会发生变化。你可以通过传入一个箭头函数来避免这种情况,或者使用.bind
.
所以而不是
getChildrem: function(node, estatus){
$children = node.filter( function(item) {
尝试这个:
getChildrem: function(node, estatus){
$children = node.filter( (item) => {