Сохранение даннх в связном списке после обновления страницы React.JS
У меня есть React приложение. При регистрации сущности "Водитель" нужно записывать данные в связной список. Делается с целю обновления статуса по нажатию на кнопку и отправки данных клиенту. Использую связной список, потому что водителей может быть около 100 человек ,и, чтобы компьютер не искал в памяти место на 100 ячеек подряд для записи массива, я использую связной список. Связной список написан в 2 файла: LinkedListNode.js и LinkedList.js.
LinkedListNode.js:
class LinkedListNode {
constructor(value, next) {
this.value = value;
this.next = next;
}
toString() {
return `${this.value}`;
}
}
export default LinkedListNode;
LinkedList.js:
import LinkedListNode from './LinkedListNode.js';
class LinkedList {
constructor() {
this.head = null;
this.teil = null;
}
append(value) {
const newNode = new LinkedListNode(value);
if (!this.head || !this.teil) {
this.head = newNode;
this.teil = newNode;
return this;
}
this.teil.next = newNode;
this.teil = newNode;
return this;
}
toArray() {
const nodes = [];
let currentNode = this.head;
while (currentNode) {
nodes.push(currentNode);
currentNode = currentNode.next;
}
return nodes;
}
toString() {
return this.toArray().map((node) => node.toString);
}
}
export default LinkedList;
React Component:
const LoginForm = (props) => {
const [linked, setLinked] = useState(false);
const list = new LinkedList();
const addDriverToLinkedList = (driverDatas) => {
list.append(driverDatas);
const postList = axios
.post('http://localhost:5173/src/server/storage.js', list)
.then((resp) => console.log(resp))
.catch((err) => console.error('CritsErr: ' + err));
};
...
const driverDatas = `${values.name}|${values.carName}|${values.carNum}`;
const listItems = addDriverToLinkedList(driverDatas);
Лишние логи убрал. По коду React компонента видно, что пытался отправить данные в файл storage.js.
Storage.js:
import axios from 'axios';
const getRequest = axios.get(
'http://localhost:5173/src/components/Forms/LoginForm.jsx'
);
Никакой способ не работает. При обновлении list (экземпляр LinkedList) очищается.
Также возник вопрос: "Можно ли абсолютно всех пользователей записывать в один экземпляр ?"
Я понимаю, что для каждого пользователя создается свой экземпляр "list" и то, что данный код не работает именно поэтому (скорее всего).
Можно ли выполнить задачу: "Запись водителя в общий экземпляр LinkedList, который не очищается при обновлении страницы и после окончанию жизненного цикла компонента, а также отправлять этот список при его обновлении в отдельный компонент, который будет рандомно выбирать водителя и отправлять ему уведомление с данными клиента", и если да, то как ?
Писать функцию "компонент, который будет рандомно выбирать водителя и отправлять ему уведомление с данными клиента" не надо. Я сделаю это сам. Просто сказал заранее, думаю это будет влиять на то, какое будет решение.
Заранее спасибо
Отправка данных в отдельный js файл. Результат: логи пустые