Я использую этот пакет для маршрутизации в моем приложении. Поскольку я хочу имитировать маршрут, я изменяю URL-адрес браузера из тестового файла следующим образом:
window.history.replaceState({}, "Test", "/abc");
location.pathname перед этим оператором = "/"
location.pathname после этого оператора = "/ ab c"
Он изменяет маршрут, как ожидалось, но даже до того, как location.pathname будет установлен как "/ ab c", location.pathname читается как "/" в крюковом маршрутизаторе package. js файл следующим образом:
node_modules \ hookrouter \ src \ router. js:
import React from 'react';
import isNode from './isNode';
import {setQueryParams} from './queryParams';
import {interceptRoute} from './interceptor';
let preparedRoutes = {};
let stack = {};
let componentId = 1;
let currentPath = isNode ? '' : location.pathname; // here
let basePath = '';
let basePathRegEx = null;
const pathUpdaters = [];
Из-за этого, хотя функция replaceState изменяет маршрут, она не удалось изменить его при загрузке, поэтому файл маршрутизатора пакета js выполняется перед изменением маршрута на «/abc".
Есть ли способ сделать pushState / replaceState и изменить местоположение. путь "при загрузке" еще до выполнения модульных тестов? Пакеты модулей узла должны иметь возможность читать новый набор location.pathname. Пожалуйста, сообщите.