Я пытаюсь добавить оповещение каждый раз, когда отправляю свою форму. Я пытался передать свое состояние в качестве опоры моему компоненту, но это не сработало.
Вот мое состояние класса:
this.state = {
alert_variant: '',
alert_heading: '',
alert_body: '',
alert_show: false
};
Вот как я отображаю свое предупреждение:
<ReactAlert
show={this.state.alert_show}
variant={this.state.alert_variant}
heading={this.state.alert_heading}
body={this.state.alert_body}
/>
Вот часть моего обработчика отправки в Formik, который отправляет значения в API:
onSubmit={(
values,
{
setSubmitting,
resetForm
}) =>{
fetch("url.com", {
method: 'POST',
mode: 'cors',
body: JSON.stringify(values, null, 2)
}
)
.then(res => res.json())
.then(
(result) => {
console.log(result)
setSubmitting(false)
resetForm(values)
this.setState({
alert_show: true,
alert_variant: 'success',
alert_heading: 'Sample Header',
alert_body: 'Sample body.'
});
},
(error, result) => {
this.setState({
error
});
console.log(this.state.error);
setSubmitting(false);
}
)
А вот мой компонент Alert:
function ReactAlert(props){
const [show, setShow] = useState(false);
if (show) {
return(
<Bs.Alert variant={props.variant} onClose={() => setShow(false)} dismissible>
<Bs.Alert.Heading>{props.heading}</Bs.Alert.Heading>
<p>
{props.body}
</p>
</Bs.Alert>
);
}
return null;
}
Теперь, как я могу изменить свою переменную состояния в обработчике отправки Formik? Это вообще возможно? Я пытался создать отдельную функцию обработчика отправки, но это тоже не сработало.