I am unsure how to use the new @shopify/app-bridge and @shopify/polaris together. For example, I have tried to make a React component that will use the app-bridge and polaris to display a toast.
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;
But it does not seem to dispatch the action. Any ideas on why not? Note that my app is wrapped in the AppProvider and app-bridge is initialized.
ReactDOM.render( <AppProvider apiKey={process.env.REACT_APP_SHOPIFY_API_KEY} shopOrigin={queryString.parse(window.location.search).shop} > <Start /> </AppProvider>, document.getElementById("root") );
Any ideas on why this doesn't work?
Solved! Go to the solution
Hi Chad! I'm puzzled too; your code looks good. What version of Polaris are you using?
iain-campbell | Developer @ Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit Shopify.dev or the Shopify Web Design and Development Blog
Hmmm, I don't see any problems. Two more things to try:
1) Are there any errors or warnings in the console when you run your app in Shopify Admin?
2) Follow our documentation on using the Redux DevTools and let me know what you see when the app loads.
iain-campbell | Developer @ Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit Shopify.dev or the Shopify Web Design and Development Blog
Hi Chad, Hanna here taking over for Iain while he's away.
The code in your OP looks to be correct, I'm curious about the reason behind using the `Toast` action from App Bridge vs `Feedback indicators` from Polaris (https://polaris.shopify.com/components/feedback-indicators/toast#section-use-in-an-embedded-applicat...). The difference between the two can be a bit confusing, and I was wondering if there was a particular reason for using the `Toast` action?
Another question I have is whether you have `@shopify/app-bridge` in your `package.json`?
User | Count |
---|---|
13 | |
12 | |
7 | |
4 | |
4 |