Я работаю со встроенным приложением React Shopify (загружается с помощью create-реагировать-приложение). Я пытаюсь следовать документам для компонента ClientRouter в app-bridge-реакции: https://shopify.dev/tools/app-bridge/react-components/client-router, но я довольно плохо знаком с экосистемой Shopify и не могу получить встроенную маршрутизацию общаться с навигационными ссылками, установленными в Shopify. Примеры в документации не показывают, как должна выглядеть маршрутизация внутри приложения React.
// index.js
import React from 'react'
import ReactDOM from 'react-dom'
import { BrowserRouter } from 'react-router-dom'
import { Provider as AppBridgeProvider } from '@shopify/app-bridge-react'
import { AppProvider } from '@shopify/polaris'
import translations from '@shopify/polaris/locales/en.json'
import '@shopify/polaris/styles.css'
import Router from './Router'
import './index.css'
ReactDOM.render(
<React.StrictMode>
<BrowserRouter>
<AppBridgeProvider
config={{
apiKey: API_KEY,
shopOrigin: SHOP_ORIGIN,
}}
>
<AppProvider i18n={translations}>
<Router />
</AppProvider>
</AppBridgeProvider>
</BrowserRouter>
</React.StrictMode>,
document.getElementById('root')
)
// Router.js
import { withRouter } from 'react-router-dom'
import { useClientRouting } from '@shopify/app-bridge-react'
const Router = (props) => {
const { history } = props
console.log(history.location) // always "/"
useClientRouting(history)
return null
}
export default withRouter(Router)
Я пытался вернуть коммутатор с маршрутами внутри маршрутизатора. js, но история location всегда "/" (хотя я вижу изменение URL в iframe). Любая помощь будет оценена.