为什么PyCharm在这段代码中显示错误?(React)

2cmtqfgy  于 2022-11-23  发布在  PyCharm
关注(0)|答案(1)|浏览(153)

我现在正在学习react.js。我有一个插件,所以pycharm应该支持JSX。但是当我尝试在里面编码的时候,我总是得到大量的错误(检查了100次,我的代码是正确的)。我应该怎么做或者我的代码是正确的?
Registration.js

import React from 'react'
import CryptoJS from 'crypto-js'
export class App extends React.component {
        function send () {
        const form = {
            email: document.getElementById('EmailInput').value,
            username: document.getElementById('UsernameInput').value,
            password: CryptoJS.MD5.encrypt(document.getElementById('PasswordInput').value),
            emailSpam: document.getElementById('checkEmailSpam').checked
        }
        fetch('register', {method: 'POST', body: JSON.stringify(form)})
            .then(data => data.json())
        alert('На ваш E-mail было выслано письмо с сcылкой для завершения регистрации. Все инструкции в письме.')
    }

    render() {
        return (
            <div id="loginForm" className="card mt-5" style="width: 40vh; background-color: #F6F8FA">
                <form style="text-align: left">
                    <div className="mb-3 mt-3 ms-3 me-3">
                        <label htmlFor="EmailInput" className="form-label">E-mail</label>
                        <input type="email" className="form-control" id="EmailInput" placeholder="E-mail">
                    </div>
                    <div className="mb-3 mt-3 ms-3 me-3">
                        <label htmlFor="UsernameInput" className="form-label">Отображаемое имя</label>
                        <input type="text" className="form-control" id="UsernameInput" placeholder="Никнейм">
                    </div>
                    <div className="mb-3 ms-3 me-3">
                        <label htmlFor="PasswordInput" className="form-label">Пароль</label>
                        <input type="password" className="form-control" id="PasswordInput" placeholder="Пароль">
                    </div>
                    <div className="form-check mb-3 ms-3 me-3">
                        <input type="checkbox" className="form-check-input" value="" id="checkEmailSpam" checked>
                            <label htmlFor="checkEmailSpam" className="form-check-label">
                                Желаете ли вы получать новости Фонда МультиСны на корпоративную почту?
                            </label>
                    </div>
                    <div className="d-grid gap-2 col-6 mx-auto">
                        <button className="btn btn-success mb-3 mt-2" type="button" style="background-color: #44c96b"
                                onClick="send()">Зарегестрироваться
                        </button>
                    </div>
                </form>
            </div>
        )
    }
}

错误是smth like它是smth like:statement excpected”or“}预期,但它们确实存在

mm5n2pyu

mm5n2pyu1#

1.不能在类体中使用function关键字,因此:
1.必须关闭jsx中的<input />标记

import React from "react";
import CryptoJS from "crypto-js";
export class App extends React.component {
  send() {
    const form = {
      email: document.getElementById("EmailInput").value,
      username: document.getElementById("UsernameInput").value,
      password: CryptoJS.MD5.encrypt(
        document.getElementById("PasswordInput").value
      ),
      emailSpam: document.getElementById("checkEmailSpam").checked,
    };
    fetch("register", { method: "POST", body: JSON.stringify(form) }).then(
      (data) => data.json()
    );
    alert(
      "На ваш E-mail было выслано письмо с сcылкой для завершения регистрации. Все инструкции в письме."
    );
  }

  render() {
    return (
      <div
        id="loginForm"
        className="card mt-5"
        style="width: 40vh; background-color: #F6F8FA"
      >
        <form style="text-align: left">
          <div className="mb-3 mt-3 ms-3 me-3">
            <label htmlFor="EmailInput" className="form-label">
              E-mail
            </label>
            <input
              type="email"
              className="form-control"
              id="EmailInput"
              placeholder="E-mail"
            />
          </div>
          <div className="mb-3 mt-3 ms-3 me-3">
            <label htmlFor="UsernameInput" className="form-label">
              Отображаемое имя
            </label>
            <input
              type="text"
              className="form-control"
              id="UsernameInput"
              placeholder="Никнейм"
            />
          </div>
          <div className="mb-3 ms-3 me-3">
            <label htmlFor="PasswordInput" className="form-label">
              Пароль
            </label>
            <input
              type="password"
              className="form-control"
              id="PasswordInput"
              placeholder="Пароль"
            />
          </div>
          <div className="form-check mb-3 ms-3 me-3">
            <input
              type="checkbox"
              className="form-check-input"
              value=""
              id="checkEmailSpam"
              checked
            />
            <label htmlFor="checkEmailSpam" className="form-check-label">
              Желаете ли вы получать новости Фонда МультиСны на корпоративную
              почту?
            </label>
          </div>
          <div className="d-grid gap-2 col-6 mx-auto">
            <button
              className="btn btn-success mb-3 mt-2"
              type="button"
              style="background-color: #44c96b"
              onClick="send()"
            >
              Зарегестрироваться
            </button>
          </div>
        </form>
      </div>
    );
  }
}

相关问题