Как решить React ошибку: Ошибка разбора: неожиданный токен - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь поработать над интеграцией библиотеки с именем react-phone-number-input с моей многоэтапной формой реагирования в соответствии со следующим:

import React, {useState} from 'react'
import Helmet from 'react-helmet'
import './reg-style/Credentail.css'
import 'react-phone-number-input/style.css'
import PhoneInput from 'react-phone-number-input'

export default function Credential (){
    continue = e => {
        e.preventDefault();
        this.props.nextStep();
      };

      back = e => {
        e.preventDefault();
        this.props.prevStep();
      };

          const [ values, handleChange ] = this.props;
          const [value, setValue] = useState()
        return (
            <div>
                  <Helmet>
                  <body className="form-bg-col"></body>
                </Helmet>


                <div className="login">
                  <div className="reg-container">
                  <button onClick={this.back} className="col-form-prev"><i class="fa fa-chevron-left"></i></button>
                  <div className="user-detail email">
                      Email:
                      <input onChange={handleChange('Email')} defaultValue={values.Email}  type="email" placeholder="Enter your Email"/>
                  </div>
                  <div  className="user-detail" 
                  onChange={handleChange('Phone')} defaultValue={values.Phone}
                  >
                      Phone:
                      <PhoneInput
                        displayInitialValueAsLocalNumber
                        placeholder="Enter phone number"
                        defaultCountry="IN"
                        value={value}
                        onChange={setValue}
                        />

                  </div>
                  <div className="user-detail username">
                      Username:
                      <input onChange={handleChange('Username')} defaultValue={values.Username} type="text" placeholder="Select your unique Username" />
                  </div>
                  <div className="user-detail password">
                      Password:
                      <input onChange={handleChange('Password')} defaultValue={values.Password} type="password" placeholder="Choose your Password" />
                  </div>

                  <button onClick={this.continue} className="col-form-next"><i class="fa fa-chevron-right"></i></button>


                  </div>

                </div>
            </div>
        )

}

во время работы я получаю ошибку:

 `./src/form/register/Credential.js
  Line 9:14:  Parsing error: Unexpected token

   7 | 
   8 | export default function Credential (){
>  9 |     continue = e => {
     |              ^
  10 |         e.preventDefault();
  11 |         this.props.nextStep();
  12 |       };`

Что я должен сделать, чтобы избавиться от этой ошибки, ваша помощь будет чрезвычайно ценной для меня

1 Ответ

1 голос
/ 24 марта 2020

continue является зарезервированным ключевым словом в javascript.

Так что просто используйте другое имя для вашего метода.


Другая проблема заключается в том, что вы, кажется, используете синтаксис для объявления методов в классе. Поскольку теперь вы используете function, вам придется объявлять свои переменные, и при их использовании не следует использовать this.back, но back, поскольку он не является частью объекта, а является локальной переменной.

import React, { useState } from "react";
import Helmet from "react-helmet";
import "./reg-style/Credentail.css";
import "react-phone-number-input/style.css";
import PhoneInput from "react-phone-number-input";

export default function Credential() {
  const alter = e => {
    e.preventDefault();
    this.props.nextStep();
  };

  const back = e => {
    e.preventDefault();
    this.props.prevStep();
  };

  const [values, handleChange] = this.props;
  const [value, setValue] = useState();
  return (
    <div>
      <Helmet>
        <body className="form-bg-col" />
      </Helmet>

      <div className="login">
        <div className="reg-container">
          <button onClick={back} className="col-form-prev">
            <i class="fa fa-chevron-left" />
          </button>
          <div className="user-detail email">
            Email:
            <input
              onChange={handleChange("Email")}
              defaultValue={values.Email}
              type="email"
              placeholder="Enter your Email"
            />
          </div>
          <div
            className="user-detail"
            onChange={handleChange("Phone")}
            defaultValue={values.Phone}
          >
            Phone:
            <PhoneInput
              displayInitialValueAsLocalNumber
              placeholder="Enter phone number"
              defaultCountry="IN"
              value={value}
              onChange={setValue}
            />
          </div>
          <div className="user-detail username">
            Username:
            <input
              onChange={handleChange("Username")}
              defaultValue={values.Username}
              type="text"
              placeholder="Select your unique Username"
            />
          </div>
          <div className="user-detail password">
            Password:
            <input
              onChange={handleChange("Password")}
              defaultValue={values.Password}
              type="password"
              placeholder="Choose your Password"
            />
          </div>

          <button onClick={alter} className="col-form-next">
            <i class="fa fa-chevron-right" />
          </button>
        </div>
      </div>
    </div>
  );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...