当前位置: 首页 > 面试题库 >

如何在ReactJS中使用PayPal的Express In-Context Checkout?

郑嘉悦
2023-03-14
问题内容

我正在关注有关如何生成PayPal按钮的PayPal教程,但是没有任何效果。它提供的使按钮看起来神秘的代码对我来说只有一次,但是刷新之后,它消失了,没有基督使它再次出现。

这是在React组件内部执行的代码

  class Storefronts extends Component {
    render() {
      return (
        <div className="layout-wrapper">
          {this.props.location.pathname === '/shops' ? <Shops {...this.props}/> : <Basic {...this.props}/>}
          <script>
            window.paypalCheckoutReady = function() {
              paypal.checkout.setup('MERCHANTID', {
                environment: 'sandbox',
                container: 'test1',
              })
            }
          </script>
        </div>
      );
    }
  }

这是一个Storefront包含的组件Shop,并且在其中有一个Card组件。基本上,这是一家展示产品的商店,每个产品(Card)需要有一个按钮:

class Card extends Editor {
  render() {
    const {list} = this.props;
    let img = '/images/logo-v2-small.jpg';

    return (
      <Row>
      {list.map(item =>{
        return (
          <Col xs={6} md={3}>
            <Link to={{ pathname: '/shops/' + item.id }}>
              <Thumbnail src={img} alt={item.name}>
                <h3>{item.name}</h3>
                <p>{this.parseHtmlToReact(item.description)}</p>
                <p>{item.address}</p>
                <p>
                  <Button bsStyle="primary">Book</Button>
                  <a id="test1" href="/checkout"/> // The button should appear here.
                  <p className="pull-right">
                    {item.rating} 
                  </p>
                </p>
              </Thumbnail>
            </Link>
          </Col>
        )
      })}
      </Row>
    );
  }
}

关于它在React中的用法,也没有最新的模块,这没有什么可说的。


问题答案:

您可以创建自己的PayPal Button组件。

class PayPalButton extends React.Component {
  constructor() {
    super();
    // you can take this value from a config.js module for example.
    this.merchantId = '6XF3MPZBZV6HU';
  }

  componentDidMount() {
    let container = this.props.id;
    let merchantId = this.merchantId;
    window.paypalCheckoutReady = function() {
      paypal.checkout.setup(merchantId, {
        locale: 'en_US',
        environment: 'sandbox',
        container: container,
      });
    }
  }

  render() {
    return(
      <a id={this.props.id} href="/checkout" />
    );
  }
}

ReactDOM.render(<PayPalButton id="button" />, document.getElementById('View'));

JSFiddle上的工作示例 。



 类似资料:
  • 问题内容: 我是ReactJS的新手。以前,我使用jQuery设置所需的任何动画或功能。但是现在我正在尝试使用ReactJS并最小化jQuery的使用。 我的情况是: 我正在尝试使用ReactJS构建手风琴。 使用JQuery : 我的问题: 我该如何使用ReactJS? 问题答案: 您应该尝试避免在ReactJS中使用jQuery。但是,如果您真的想使用它,则可以将其放入组件的component

  • 除了使用DangerouslySetInnerHTML之外,还有其他的方法吗? 谢谢!

  • 问题内容: 我想在自己的内部加载Google API客户端库,并且会在单独的javascript文件中调用方法。然后,该方法将输出到控制台。 客户端库已加载,没有任何问题,但消息未从控制台打印出来,我认为这是因为根本没有调用该方法。 这是我的: 这是包含方法的javascript文件: 如果这是纯JavaScript,则该方法将如下所示: es6中是否有任何与对象相似的东西。 问题答案: 组件方法

  • 问题内容: 从官方教程中: 在卸载和销毁组件之前立即调用。使用此方法执行任何必要的清除,例如使计时器无效,取消网络请求或清除在其中创建的所有DOM元素。 我了解“使计时器无效”。可以用终止。但是我不理解“清理在中创建的任何DOM元素”,我可以看到这种情况的示例吗? 问题答案: 如果网络请求发送库支持中止正在进行的网络请求调用,则绝对可以在方法中调用该请求。 但是,与清理元素有关。根据目前的经验,我

  • 问题内容: 我是ReactJS的新手,很抱歉,如果听起来不对。我有一个根据接收到的数据创建多个表行的组件。 列中的每个单元格都有一个单选复选框。因此,用户可以从现有行中选择一个和一个。选项应在页脚中显示。那就是我被困住的地方。 在jQuery中,我可以做一些事情,例如选择一个单选复选框类型并将其插入第一个页脚单元格。 但是肯定有一种Reactjs方式,我完全不知道吗?非常感谢 问题答案: 渲染的任

  • 在jQuery中,我可以执行这样的操作,以获得一个单选复选框类型的选择,并将其插入到第一个页脚单元格中。 但肯定有一种Reactjs方式,我完全不知道?多谢