Кнопка продолжает дублироваться при выборе другой опции - PullRequest
2 голосов
/ 04 апреля 2020

Я пытаюсь реализовать кнопку PayPal.

Я получил свою ссылку здесь: https://fireship.io/lessons/paypal-checkout-frontend/

Однако каждый раз, когда я меняю свой выбор, мой PayPal Кнопка продолжает дублироваться.

Как мне это исправить?

setValueType(event){
        this.setState({buy_cash_type: event});
    }

<div className="add_cash_page">
  <select id="add_cash_type" className="add_cash_type" onChange={e => this.setValueType(e.target.value)}>
   <option value="5">$5 CAD 5,000</option>
    <option value="10">$10 CAD 10,000</option>
   <option value="20">$20 CAD 20,000</option>
   </select>
  <div>
 <Paypal product={{price:this.state.buy_cash_type}}/>
      </div>
 </div>

Paypal. js

function Paypal({ product }){
    const [paidFor, setPaidFor] = useState(false);
    const [err, setError] = useState(false);

    const paypalRef = useRef();

    useEffect(() => {
        window.paypal.
        Buttons({
            createOrder: (data, actions) => {
              return actions.order.create({
                purchase_units: [
                  {
                    description: "hi",
                    amount: {
                      currency_code: 'USD',
                      value: product.price,
                    },
                  },
                ],
              });
            },
            onApprove: async (data, actions) => {
              const order = await actions.order.capture();
              setPaidFor(true);
              console.log(order);
            },
            onError: err => {
              setError(err);
              console.error(err);
            },
          })
          .render(paypalRef.current);
      }, [product.price]
      );



    return (
        <div>
            <div id="paypal_btn" className="paypal_btn">
                <div ref={paypalRef} />
            </div>
        </div>
    )
}
export default Paypal;

Не слишком уверен, как я могу это исправить.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...