#reactjs #react-router #react-router-dom #react-router-v5
#reactjs ( реакция ) #реагировать-маршрутизатор #реагировать-маршрутизатор-dom #react-router-v5 #reactjs #react-маршрутизатор #react-router-dom
Вопрос:
У меня есть react SPA, который обслуживается Laravel.. Я хочу, чтобы SPA мог переходить на некоторые страницы, которые также обслуживаются Laravel..
Обновить:
В качестве примера … в моем приложении на основе coreui-react.. Я хочу разрешить пользователю открывать руководство пользователя, созданное с использованием vuepress. Я хочу иметь возможность открывать его на совершенно новой странице и не включать его в SPA. SPA отображается наhttps://test.local / руководство пользователя находится по адресу https://test.local/docs
Ссылка на = «/ docs» возвращает меня обратно в SPA, ссылка на =»//test.local /docs» также выполняет
Я также попытался разместить onClick={() => window.местоположение = окно.location.protocol «//» window.Расположение.имя хоста «/ docs»} внутри ссылки, но без изменений, за исключением того, что он выпадает с локального сервера разработки (порт 3000).. но если он находится в сборке, то он все равно попадает в ReactRouter
Есть предположение, что StaticRouter сделает это, но все примеры, которые я вижу, относятся к рендерингу содержимого на стороне сервера, которое будет использовать SPA, а не к переходу на страницу, доставленную сервером..
Я вроде как на пределе своих возможностей.. моя единственная мысль на данный момент — переместить SPA из «/» в «/ app» и вообще не обрабатывать «/» внутри SPA в надежде, что ReactRouter пропустит это
Похоже, это долгосрочная проблема в ReactRouter.. но в прошлом вы могли бы пробиться грубой силой сместоположение — но, похоже, это уже не так..
Ответ №1:
Если я правильно понимаю, вы можете использовать «история».:
const history = useHistory();
вы должны импортировать useHistory
из react-router-dom
:
import { useHistory } from 'react-router-dom'
и тогда вы можете использовать:
history.push('/analytics')
Комментарии:
1. Итак, я думаю, мне нужно создать компонент для хранения этого?
2. Вы должны использовать маршруты в своем приложении, используете ли вы маршруты?
3. Маршруты есть как в SPA, так и в laravel.. на самом деле это выглядит как либо 1. Я должен направлять «неизвестные» маршруты в laravel (возможно, лучший СУХОЙ метод .. или обрабатывать маршруты верхнего уровня из laravel в SPA, направляя их обратно … раньше можно было просто использовать window. местоположение, но, похоже, это больше не работает
4. Я думаю, что это может быть решением blog.somewhatabstract.com/2020/03/02 / … но для этого потребуется немного подумать..
5. простым способом может быть выполнение действия onClick для ссылок, которые мне нужны, чтобы выйти из SPA и создать URL-адрес, используя var full = window. location.origin «путь»