我正在使用嵌入式 React Shopify 应用程序(使用 create-react-app 引导)。我正在尝试遵循 app-bridge-react 中 ClientRouter 组件的文档: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)
我尝试在 Router.js 中返回带有路由的 Switch,但历史位置始终是“/”(尽管我可以看到 iframe 中的 URL 发生变化)。任何帮助,将不胜感激。