У меня есть компонент React, в котором мне нужно изменить состояние после успешного вызова базы данных. Вызов базы данных использует функцию обратного вызова, которую я не могу изменить, однако я не могу найти способ доступа к функции перенаправления в том же компоненте из функции обратного вызова. Я просто получаю ошибку enableRedirect' of null
Я пытался изменить функцию обратного вызова на функцию стрелки, но тогда она вызывается неправильно. Я читал другие ответы на подобные проблемы, но не могу применить их к моей ситуации
...
componentDidUpdate = (prevProps, prevState) => {
if (prevState.braintreeToken !== this.state.braintreeToken) {
dropin.create(
{
authorization: this.state.braintreeToken,
container: "#dropin-container",
},
//callback function happens here
(createErr, instance) => {
button.addEventListener("click", function() {
instance.requestPaymentMethod(function(
requestPaymentMethodErr,
payload
) {
api
.submitPayload(payload, plan, id)
.then(res => {
//this is where I'm trying to call my enable redirect function
this.enableRedirect();
})
.catch(err => {
//error handling
});
});
});
}
);
}
};
// the function I'm trying to call
enableRedirect = () => {
this.setState({
redirect: true
});
};
...
Мне нужно, чтобы функция enableRedirect была вызвана в обратном вызове!