Я использую 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();< /strong> но как я могу использовать это, чтобы решить эту проблему?
Я обновил код с помощью destroy: true
, но когда таблица повторно инициализируется, все данные каждый раз помещаются в переменную dataSet
, поэтому при каждом обновлении данных каждая строка повторяется в таблице. Как очищать переменную dataSet
каждый раз.