首页 > 解决方案 > Npm paypal 按钮:createOrder 不是函数

问题描述

从昨天开始,我一直在毫无问题地使用组件 Paypal button v2,突然在我的代码中更改了一个简单的不相关行之后,我遇到了问题。撤消我所做的更改后,我仍然收到以下错误:

Error: createOrder is not a function
render/createOrderFn<
src/index.tsx:191

 188 | const createOrderFn =
 189 |     amount && !createOrder
 190 |         ? (data: any, actions: any) => this.createOrder(data, actions)
> 191 |         : (data: any, actions: any) => createOrder(data, actions);
     | ^  192 | 
 193 | return (
 194 |     <Button

我的程序或 createOrderFn 组件中没有任何 createOrder 函数,所以我不知道错误是什么意思。

有没有人经历过类似的事情?

下面是我如何渲染 paypal 组件:

return (
        <div
            style={{
                position: 'absolute', left: '50%', top: '15%',
                transform: 'translate(-50%, -15%)'
            }}
        >
            <PayPalButton
                amount={state.total}
                // shippingPreference="NO_SHIPPING" // default is "GET_FROM_FILE"
                onSuccess={(details, data) => {
                  alert("Transaction succesful.")
                  state.user.cart.linesItems = [];
                  state.user.cart.subtotal = 0;
                  console.log(JSON.stringify(state.user));
                  saveUserCart(state.user);
                }}
                options={{
                    clientId: "sb"
                }}
            />
        </div>
    );
}

标签: reactjspaypal

解决方案


amount如果此时由于某种原因未定义/为假,该函数调用也可能触发。您应该添加日志记录以确定究竟发生了什么。

无论如何,看起来您正在使用非官方的反应模块;尝试使用新的@paypal/react-paypal-js


推荐阅读