様々な開発言語や環境、用途に応じた実際に動作するアプリやテーマのサンプルコードを、公式、非公式問わず集める場所です。自分のコードをもとにした質問をしたり、希望を書くだけでも構いません。
React を用いた SPA で画面遷移を行う場合、React Router を利用する事が多いかと思いますが、Shopify アプリ上で行う場合、Shopify App Bridge の History API を併せて利用する必要があります。
Shopify アプリを作成する毎にそれらを実装することもできますが、React Hook にした @huckleberry-inc/shopify-app-history npm を作成しました。
以下の様に利用できます。
import React from "react"; import { Button } from "@shopify/polaris"; import createApp from '@shopify/app-bridge'; import { useShopifyHistory } from '@huckleberry-inc/shopify-app-history'; export const Component = () => { const app = createApp({ apiKey: 'API key from Shopify Partner Dashboard', shopOrigin, }); const to = useShopifyHistory(app); return ( <Button onClick={ () => { to("/another_page") }} /> ); };
公式ドキュメントの更新があり、AppProvier の linkComponent 属性を使えばできるとのこと。(試していません)
https://polaris.shopify.com/components/structure/app-provider#using-linkcomponent
linkComponent を設定し Polaris の Link component を利用すると、iframe 内で画面遷移を実現することが出来た (React Router が有効に機能した) が、App Bridge の History API は自動で呼ばれなかった。
ブラウザの URL も連動して遷移させたい場合は、linkComponent だけでは現状実現できない。
Next.jsベースの場合ですが、こちらのリポジトリを参照しブラウザの URLと連動してのページ遷移ができました。
https://github.com/Shopify/product-reviews-sample-app
Next.js付属の"next/router"の利用と、このリポジトリ内のRoutePropagatorコンポーネントを参照しました。
具体的なコードを記載すべきかと思いますが、整理できていない部分もあるため後に時間を見て記載したいと思います。
東京都渋谷区代々木で30年以上、プランニングとグラフィックデザイン制作を営んでいる株式会社キュー。自社のアパレル事業やWeb制作・開発事業なども展開し、社員数が100名と小規模なが...
By rinaflora Sep 17, 2023お客様の検索はもちろん、消費行動によってセグメント管理することで、より効果的なマーケティングを行うことができます。今回は、便利な検索機能やセグメントの作成方法をご紹介!
By Alex06 Sep 3, 2023Shopifyでは多数の言語のサポートと、選択肢が提供されていることをご存知でしょうか?新しく導入されたサポートインボックスの詳細や、ヘルプセンターよりチャットを開始する方法など...
By Mirai Aug 20, 2023