class Block {
constructor(data) {
if (!data.type) {
throw new Error('No type passed in Block constructor!');
}
this.type = data.type;
}
create() {
fetch('http://test.com/color')
.then(r => {
this.color = r;
return this;
});
}
}
function send(data) {
fetch('http://test.com', {
method: 'POST',
body: JSON.stringify(data),
})
.catch(console.log)
}
function initSending(data, Construct) {
setInterval(() => {
const unit = new Contruct(data);
unit.create().then(r => send(r))
}, 10000);
}
initSending({type: 'Brick'}, Block);
class Block {
constructor(color) {
this.color = color || '';
}
create() {
return new Promise((resolve, reject) => {
setTimeout(() => {
return resolve({type: 'Brick', color: this.color});
},0);
});
};
prepareForSend(block) {
return block.color = block.color.toUpperCase();
};
initSending() {
setInterval(() => {
this.create().then(block => {
const preparedBlock = this.prepareForSend(block);
send(preparedBlock);
});
}, 10000);
}
}
function send(block) {
fetch('http://test.com', {
method: 'POST',
body: JSON.stringify(block),
})
.catch(console.log)
}
const block = new Block();
block.initSending();
function _anyNumberSort(a, b, high) {
var reg = /[+-]?((\d+(\.\d*)?)|\.\d+)([eE][+-]?[0-9]+)?/;
a = a.replace(',','.').replace(/ /g,'').match(reg);
a = a !== null ? parseFloat(a[0]) : high;
b = b.replace(',','.').replace(/ /g,'').match(reg);
b = b !== null ? parseFloat(b[0]) : high;
console.log(a);
console.log(b);
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
};
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"any-number-asc": function (a, b) {
return _anyNumberSort(a, b, Number.POSITIVE_INFINITY);
},
"any-number-desc": function (a, b) {
return _anyNumberSort(a, b, Number.NEGATIVE_INFINITY) * -1;
}
});
columnDefs: [
{
type: 'any-number',
targets: 'any-number',
},
{
targets: 'no-sort', //отменяем сортировку у столбцов с этим классом
orderable: false,
},
],
У вас при клике идет сортировка по всем данным, а не по тем что на странице. Так что если хотите иметь сортировку на клиенте:
с миру по нитке
например о контейнерах и компонентах
в доке редакса https://redux.js.org/basics/usage-with-react
или в патернах
https://reactpatterns.com/#container-component
https://reactpatterns.com/#function-component
а по поводу pages, просто обратил внимание на структуры разных проектов из гитхаба или статей , например тут https://blog.bitsrc.io/structuring-a-react-project...