将一些服务器端动态客户端javascript添加到反应应用

时间:2015-07-10 00:11:04

标签: javascript reactjs shopify

我正在查看Shopify Embedded App SDK以及您必须从服务器端变量中删除一些javascript的部分。我使用react enginereact-routerexpress.js

<head>
  <script src="https://cdn.shopify.com/s/assets/external/app.js"></script>
  <script type="text/javascript">
    ShopifyApp.init({
      apiKey: 'YOUR_APP_API_KEY',
      shopOrigin: 'https://CURRENT_LOGGED_IN_SHOP.myshopify.com'
    });
  </script>
</head>

有一种方法可以提供red.render(req.url, data)数据,但是我不确定我应该从组件中做些什么。有没有办法从组件中访问和更改全局ShopifyApp变量?

1 个答案:

答案 0 :(得分:0)

我将shopify代码添加到componentDidMount组件的App(react-routes中最顶层的组件)。

var Layout = require('./layout.jsx');
var React = require('react');
var Router = require('react-router');

module.exports = React.createClass({
  componentDidMount: function(){
    if(this.props.shopify){
      ShopifyApp.init({
        apiKey: this.props.shopify.apiKey,
        shopOrigin: this.props.shopify.shopOrigin
      })
    }
  },
  render: function render() {
    return (
      <Layout {...this.props}>
        <Router.RouteHandler {...this.props}/>
      </Layout>
    );
  }
});