如何通过@Shopify/Polaris-Reaction使用新的@Shopify/app-bridge [英] How to use the new @Shopify/app-bridge with @Shopify/polaris-react

查看:14
本文介绍了如何通过@Shopify/Polaris-Reaction使用新的@Shopify/app-bridge的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Shopify最近发布了他们的新@shopify/app-bridge,但我不清楚它应该如何与@shopify/polaris一起使用。

例如,我曾尝试制作一个Reaction组件,该组件将使用app-bridge和Polaris来显示吐司。

import React, { Component } from "react";
import * as PropTypes from "prop-types";
import { Toast } from "@shopify/app-bridge/actions";
import { Page } from "@shopify/polaris";

class Start extends Component {
  static contextTypes = {
    polaris: PropTypes.object
  };

  showToast() {
    console.log("SHOW TOAST");
    console.log(this.context.polaris.appBridge);
    const toastNotice = Toast.create(this.context.polaris.appBridge, {
      message: "Test Toast",
      duration: 5000
    });
    toastNotice.dispatch(Toast.Action.SHOW);
  }

  render() {
    this.showToast();
    return (
      <Page title="Do you see toast?">
        <p>I do not see toast.</p>
      </Page>
    );
  }
}

export default Start;

但它似乎没有调度操作。有什么不同的想法吗?请注意,我的应用程序包装在AppProvider中,并且应用程序桥已初始化。

ReactDOM.render(
  <AppProvider
    apiKey={process.env.REACT_APP_SHOPIFY_API_KEY}
    shopOrigin={queryString.parse(window.location.search).shop}
  >
    <Start />
  </AppProvider>,
  document.getElementById("root")
);

有什么建议吗?

推荐答案

所以经过大量调试后,我从Shopify了解到,在App Bridge内部,在采取任何操作之前,他们会检查localOrigin是否与appURL(在合作伙伴仪表板中输入的地址)匹配。在我的示例中,我有一个后端(Heroku上的node.js用于身份验证)和一个前端(Firebase上的Reaction包),我的应用程序从点击后端开始,然后如果身份验证通过,它将重定向到前端。因此本地原点不匹配.嗯,我很高兴弄明白了这件事,因为我为此失眠了很多。现在的问题是该怎么做..。也许这是可以通过AppBridge更新的内容?或者有没有我应该考虑的更好的设计?

这篇关于如何通过@Shopify/Polaris-Reaction使用新的@Shopify/app-bridge的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆