Каков наилучший способ создать логин с продолжением на главную страницу после логина через React и Electron? - PullRequest
0 голосов
/ 19 марта 2020

Я совершенно новичок в React и относительно новичок в программировании в целом. Я должен запрограммировать логин, который направляет меня на новую страницу, мою главную страницу. Вход в систему может быть простым только с именем пользователя или электронной почтой и паролем. Логин должен быть стартовой страницей. И имя пользователя / адрес электронной почты и пароль должны храниться в отдельной базе данных, где я могу проверять данные из базы данных во время входа в систему.

Поскольку это закончится за один день, приложение React должно быть преобразовано в настольное приложение Electron. .

Сейчас я создаю простой логин, но не знаю, где продолжить.

Какой лучший способ сделать это? Что мне следует подобрать для этой топи c? На какие темы я должен смотреть в целом? Есть ли у вас какие-либо ссылки, учебники, подсказки и т. Д. c. за это?

// LoginForm.js
import React from "react";

export class LoginForm extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      email: "",
      password: ""
    };
  }

  render() {
    const { email, password } = this.state; 
    return (
      <form onSubmit={this.handleSubmit}>
        <label htmlFor="email">Email</label>
        <input
          name="email"
          type="text"
          placeholder="Enter your email"
          value={email}                     
          onChange={this.handleChange}
        />
        <label htmlFor="email">Password</label>
        <input
          name="password"
          type="password"
          placeholder="Enter your password"
          value={password}                  
          onChange={this.handleChange}
        />
        <button type="submit">Login</button>
      </form>
    );
  }

  handleChange = event => {
    this.setState({
      [event.target.name]: event.target.value
    });
  };

  handleSubmit = event => {
    console.log("Submitting");
    console.log(this.state);
  };
}

// ValidatedLoginForm.js
import React from "react";
import { Formik } from "formik";
import * as EmailValidator from "email-validator";
import * as Yup from "yup";
const ValidatedLoginForm = () => (
  <Formik
    initialValues={{ email: "", password: "" }} 
    onSubmit={(values, { setSubmitting }) => {  
      setTimeout(() => {                        
        console.log("Logging in", values);
        setSubmitting(false);
      }, 500);
    }}

    validationSchema={Yup.object().shape({
      email: Yup.string()
        .email()
        .required("Required"),
      password: Yup.string()
        .required("No password provided.")
        .min(8, "Password is too short - should be 8 chars minimum.")
        .matches(/(?=.*[0-9])/, "Password must contain a number.")
    })}
  >
    {props => {     
      const {       
        values,
        touched,
        errors,
        isSubmitting,
        handleChange,
        handleBlur,
        handleSubmit
      } = props;    
      return (
        <form onSubmit={handleSubmit}>
          <label htmlFor="email">Email</label>
          <input
            name="email"
            type="text"
            placeholder="Enter your email"
            value={values.email}
            onChange={handleChange}
            onBlur={handleBlur}
            className={errors.email && touched.email && "error"}
          />
          {errors.email && touched.email && (
            <div className="input-feedback">{errors.email}</div>
          )}
          <label htmlFor="email">Password</label>
          <input
            name="password"
            type="password"
            placeholder="Enter your password"
            value={values.password}
            onChange={handleChange}
            onBlur={handleBlur}
            className={errors.password && touched.password && "error"}
          />
          {errors.password && touched.password && (
            <div className="input-feedback">{errors.password}</div>
          )}
          <button type="submit" disabled={isSubmitting}>
            Login
          </button>
        </form>
      );
    }}
  </Formik>
);

export default ValidatedLoginForm;

// index.js
import React from "react";
import ReactDOM from "react-dom";

import "./Login/styles.css";
import ValidatedLoginForm from "./Login/ValidatedLoginForm";

function App() {
  return (
    <div className="App">
      <h1>Load Test Admin</h1>
      <ValidatedLoginForm />
    </div>
  );
}

const rootElement = document.getElementById("root");
// Einstiegspunkt der Applikation
ReactDOM.render(<App />, rootElement);

С уважением

1 Ответ

0 голосов
/ 19 марта 2020

Вам следует искать такие понятия, как act-router-dom, защищенный маршрут (для страниц авторизации)

Следующая ссылка может быть вашим способом начать ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...