#javascript #reactjs #typescript #axios #react-typescript
#язык JavaScript #реагирует на #машинописный текст #аксиос #реагировать-машинописный текст
Вопрос:
Я пытаюсь отправить значение выбора из регистрационной формы. Я использую ReactJS с машинописным текстом. На данный момент я не знаю, как я могу отправить это значение :
Это мой компонент реестра :
import { Component } from "react"; import { RouteComponentProps } from "react-router-dom"; import * as Yup from "yup"; import { Formik, Field, Form, ErrorMessage } from "formik"; import "./login.css"; import AuthService from "../services/auth.services"; type Field = { value?: any; error?: string; isValid?: boolean; }; type Props = {}; type State = { civility: any; first_name: string; last_name: string; message: string; successful: boolean; }; export default class Register extends Componentlt;Props, Stategt; { constructor(props: Props) { super(props); this.handleRegister = this.handleRegister.bind(this); this.state = { civility: "", first_name: "", message: "", successful: false, }; } validationSchema() { return Yup.object().shape({ civility: Yup.string().required("Champ obligatoire !"), first_name: Yup.string().required("Champ obligatoire !"), }); } handleRegister(formValue: { civility: any; first_name: string; }) { const { civility, first_name, last_name, } = formValue; this.setState({ message: "", successful: false, }); AuthService.register( civility, first_name, ).then( (response) =gt; { this.setState({ message: response.data.message, successful: true, }); }, (error) =gt; { const resMessage = (error.response amp;amp; error.response.data amp;amp; error.response.data.message) || error.message || error.toString(); this.setState({ message: resMessage, successful: true, }); } ); } render() { const { successful, message } = this.state; const initialValues = { civility: "", first_name: "", message: "", }; return ( lt;Formik initialValues={initialValues} validationSchema={this.validationSchema} onSubmit={this.handleRegister} gt; lt;Formgt; {!successful amp;amp; ( lt;div className="login"gt; lt;div className="box-registration"gt; lt;div className="log-box-title"gt;Registerlt;/divgt; lt;Field as="select" name="civility" className="nuage"gt; lt;option disabled={true} value="choose"gt; Choose an option lt;/optiongt; lt;option value="MR"gt;Mrlt;/optiongt; lt;option value="MME"gt;Mmelt;/optiongt; lt;option value="DR"gt;Drlt;/optiongt; lt;/Fieldgt; lt;Field name="first_name" type="text" placeholder="Name" className="input-login" /gt; lt;br /gt; lt;button type="submit" className="login-button"gt; lt;spangt;Registerlt;/spangt; lt;/buttongt; lt;br /gt; lt;/divgt; lt;/divgt; )} {message amp;amp; ( lt;div className="form-group"gt; lt;div className={ successful ? "alert alert-success" : "alert alert-danger" } role="alert" gt; {message} lt;/divgt; lt;/divgt; )} lt;/Formgt; lt;/Formikgt;
Это моя услуга :
import axios from "axios"; const REG_URL = "https://localhost:3001/wp-json/app/v2"; class AuthService { register(civility: [], first_name: string) { return axios .post(REG_URL, { civility, first_name }) .then(response =gt; { if (response.data.token) { localStorage.setItem("user", JSON.stringify(response.data)); } return response.data; }); }
Когда я нажимаю на кнопку, ничего не происходит. Но если я удалю выбранный раздел, он будет работать нормально !
Спасибо вам за помощь, Если вам что-нибудь понадобится, пожалуйста, скажите мне и, пожалуйста, извините меня за мой английский.
PS : Я использую Axios для отправки своего запроса.
Комментарии:
1. Пожалуйста, также добавьте свой код из
AuthService.register
.2. @sandrooco все в порядке, я отредактировал свой пост
3. Вы уверены, что регистр обработчиков запущен? Попробуйте добавить console.log.
4. @sandrooco да, потому что, когда я удаляю свой lt;выборgt; и lt;выборgt;lt;опцияgt;, его работа