selectedRowIds
- это массив.Таким образом, вы не можете сравнить string
с array of strings
.Возможно, вы можете использовать Array.includes()
this.dataSource.data.filter(data => !selectedRowIds.includes(data.userId))
Надеюсь, это поможет.
Обновление
Этотолько предположение, так как я не знаю содержания метода deleteUser
.Метод сервиса, кажется, ожидает один идентификатор пользователя.Поэтому вам нужно либо перебрать выбранные идентификаторы, либо изменить метод сервиса, чтобы он принимал массив идентификаторов.Но будьте осторожны, если вы выполняете итерацию по массиву и делаете отдельные вызовы для каждого пользователя, и если он вызывает конечную точку API, это может вызвать нежелательное поведение.
selectedRowIds.forEach((selectedID) => {
this.UserService.deleteUser(selectedID).subscribe(res =>{
// ^^ Here's a single ID
this.dataSource.data = this.dataSource.data.filter(data => data.userId !== selectedID);
// ^^^^^^^^^^^^^^^^ filter by selectedID
}, err =>{
console.error(err);
}, ()=>{
// this.clearUserForm();
this.loadUsers(this.pageIndex);
}
);
});
Но я не рекомендую этот способ.Это может вызвать несколько вызовов API (если вы используете любой)