Как сделать POST-запрос с помощью axios в react?
У меня проблемы с запросом почты axios. Когда я нажимаю на Button
, ничего не происходит. Предполагается, что данные, которые я ввожу в поля ввода, отправляются в API. Однако, когда я нажимаю на кнопку, не происходит никакого перенаправления или чего-либо еще. Я не уверен, что функция onClick в кнопке никогда не срабатывает, или проблема заключается в вызове axios, а затем функции useNavigate. Я попробовал несколько различных способов использования этих функций, но ни один из них не сработал. Возможно, это синтаксическая проблема, так как я новичок в react. Буду признателен за любую помощь!
Полный код:
Попробуйте это:
<Button onClick={AddContactInfo}>
Add Contact
</Button>
import axios from 'axios';
const url = 'http://localhost:8000/api/';
axios.post(url , formField)
.then(response => {
console.log(response.data);
history('/', { replace: true });
})
.catch(({response}) => {
console.log(response);
});
Попробуйте вызвать функцию таким образом :)
<Button onClick={AddContactInfo}>
Add Contact
</Button>
Сначала переименуйте AddContactInfo
в addContactInfo
, а затем:
<Button onClick={addContactInfo}>
Add Contact
</Button>
Вы должны исправить метод addContactInfo
следующим образом:
const AddContactInfo = () => {
let formField = new FormData();
formField.append('first_name', first_name)
formField.append('last_name', last_name)
formField.append('mobile_number', mobile_number)
formField.append('home_number', home_number)
formField.append('work_number', work_number)
formField.append('email_address', email_address)
axios.post('http://localhost:8000/api/', {
data: formField
}).then(function (response) {
console.log(response.data);
history('/', { replace: true });
})
}