Сохранение даннх в связном списке после обновления страницы 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 файл. Результат: логи пустые


Ответы (0 шт):