Как использовать библиотеку stripe для файлов tsx. Получение ошибки

#reactjs #stripe-payments #tsx

#reactjs #stripe-платежи #tsx

Вопрос:

У меня есть проект, который находится на react, но файлы не .js, вместо этого они .tsx, и я пытаюсь использовать библиотеку stripe, но продолжаю получать ошибку.

снимок экрана с ошибкой

Я пробовал несколько разных библиотек, которые помогают настроить stripe, но я продолжаю зацикливаться на этой ошибке.

Пожалуйста, помогите или направьте меня в правильную библиотеку, которая поможет мне настроить stripe.

мои коды

 import ReactDOM from "react-dom";
import StripeCheckout from 'react-stripe-checkout';
import axios from "axios";


function handleToken(token, addresses) {
    console.log(token, addresses);
  }

export default function Webinar() {

  return (
    <div className="container">

       <StripeCheckout stripeKey = "mykey"
            token={handleToken}
            name="Tesla Roadster"
            billingAddress
            shippingAddress
            />

    </div>
  );
}
  

Ответ №1:

Проблема в том, что в вашем репозитории Typescript теперь включен strict режим, который заставляет вас указывать ввод. Если вы хотите отключить его, вы можете просто переключить его на false в tsconfig.json :

 {
  "compilerOptions": {
    "strict": false,
    // ...
  }
}

  

Измените свою функцию handleToken на переменную с тем же типом вашего компонента prop, что и следующий:

 const handleToken: StripeCheckout['props']['token'] = (token) => {
  // You can receive hint from token type here
}
  

Комментарии:

1. Чувак, ты спасаешь жизнь 🙂

2. Ха-ха 🙂 Рад слышать, что это помогло

3. Теперь я застрял на следующем, я получаю это

4. Перегрузка не соответствует этому вызову. Перегрузка 1 из 2, ‘(реквизит: только для чтения<StripeCheckoutProps>): StripeCheckout’, выдала следующую ошибку. Тип ‘(токен: любой, адреса: любые) => логическое значение’ не может быть присвоен типу ‘(токен: Token) => void’. Перегрузка 2 из 2, ‘(реквизит: StripeCheckoutProps, контекст?: любой): StripeCheckout’, выдала следующую ошибку. Тип ‘(токен: любой, адреса: любые) => логическое значение’ не может быть присвоен типу ‘(токен: Token) => void’.

5. Похоже, что token prop — это функция, которая принимает только 1 вызываемый аргумент Token . Я дам вам еще один совет, чтобы вам не нужно было указывать аргумент token напрямую.