Я использую jQuery dataTable в моем проекте, чтобы показать некоторые данные из Firestore. Все работает правильно, проблема в том, что когда некоторые данные обновляются в Firestore, в браузере появляется следующее предупреждение:
DataTables warning: table id=student-dataTable - Cannot reinitialise DataTable.
For more information about this error, please see http://datatables.net/tn/3
Я понимаю, что пытается сказать ошибка, но как мне решить проблему?
Ниже приведен мой код:
$(document).ready(function() {
var dataSet = [];
let db = firebase.firestore();
let query = db.collectionGroup("members").where("class", "==", "9");
let observer = query.onSnapshot(function(querySnapshot){
console.log("Got data");
if (!querySnapshot.empty) {
querySnapshot.forEach(function(doc) {
dataSet.push([doc.data().memberName, doc.data().phone ]);
});
} else {
console.log("querySnapshot in empty");
}
$('#student-dataTable').DataTable({
data: dataSet,
destroy: true,
columns: [
{ title: "Name" },
{ title: "Phone" },
]
});
});
});
И код HTML:
<table id="student-dataTable">
Так что кто-нибудь может мне помочь, как восстановить мою таблицу, когда данные Firestore обновления. Есть некоторая информация о этой ссылке, она предлагает использовать table.destroy (); , но как мне использовать ее для решения этой проблемы?
Я обновил код с destroy: true
, но при повторной инициализации таблицы все данные каждый раз передаются в переменную dataSet
, поэтому при каждом обновлении данных каждая строка повторяется в таблице. Как очищать переменную dataSet
каждый раз.