小编mao*_*cio的帖子

如何在Reactjs的新react-router-dom中使用Redirect

我正在使用最新版本的react-router模块,名为react-router-dom,在使用React开发Web应用程序时已成为默认设置.我想知道如何在POST请求后进行重定向.我一直在制作这段代码,但在请求之后,没有任何反应.我在网上查看,但所有数据都是关于反应路由器的先前版本,而不是最后一次更新.

码:

import React, { PropTypes } from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom';
import { Redirect } from 'react-router'

import SignUpForm from '../../register/components/SignUpForm';
import styles from './PagesStyles.css';
import axios from 'axios';
import Footer from '../../shared/components/Footer';

class SignUpPage extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      errors: {},
      client: {
        userclient: '',
        clientname: '',
        clientbusinessname: '',
        password: '',
        confirmPassword: ''
      }
    };

    this.processForm = this.processForm.bind(this);
    this.changeClient = this.changeClient.bind(this);
  }

  changeClient(event) {
    const field = …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router

94
推荐指数
7
解决办法
19万
查看次数

通过反应在快递中进行重定向

我正在使用 react 及其路由器来重定向我的应用程序。当我在我的服务器 express 中使用 get 指令时,它工作正常。但是当我发布一条指令时,它不会重定向。我必须做什么?。这是我的代码:

(我以我期望的方式收到回复,但在那之后,什么也没有发生)

lisaApp.post('/signup', (req, res) => {
  const validationResult = validateSignupForm(req.body);
  if (!validationResult.success) {
    return res.status(400).json({
      success: false,
      message: validationResult.message,
      errors: validationResult.errors
    });
  }

  var newClient = req.body
  newClient.clientemailname = newClient.userclient
  newClient.client_id = uuid.v4()

  delete newClient.confirmPassword

  ClientApi.saveClient(newClient, function (err, usr) {
    if (err) return res.status(500).send(err.message)

    console.log('ready to redirect') //Here, the response has a status "0k"
    res.redirect('/')
  });
});
Run Code Online (Sandbox Code Playgroud)

node.js express reactjs

1
推荐指数
1
解决办法
6793
查看次数

Passport 不保存会话

我已经阅读了很多关于这个问题的内容,但任何答案对我都不起作用。我正在使用 React、Express 和 Passport 来管理我的身份验证程序。身份验证例程很好,它可以实现我想要的重定向。但是,当我刷新任何路线时,它说我没有经过身份验证。Passport 似乎没有保存会话。这是我的代码:

服务器.js

const lisaApp = express();

lisaApp.use(bodyParser.json())
lisaApp.use(bodyParser.urlencoded({ extended: false }))
lisaApp.use(cookieParser())
lisaApp.use(session({
  secret: config.secret,
  resave: false,
  saveUnitialized: false
}))
lisaApp.use(passport.initialize())
lisaApp.use(passport.session())

passport.use(auth.localStrategy);
passport.serializeUser(auth.serializeUser);
passport.deserializeUser(auth.deserializeUser);

lisaApp.post('/login', (req, res, next) => {
  const validationResult = validateLoginForm(req.body);
  if (!validationResult.success) {
    return res.status(400).json({
      success: false,
      message: validationResult.message,
      errors: validationResult.errors
    });
  }

  return passport.authenticate('local', (err, userData) => {
    if (err) {
      if (err.response.statusText === 'Unauthorized') {
        return res.status(400).json({
          success: false,
          message: 'The password is not right'
        });
      }

      return …
Run Code Online (Sandbox Code Playgroud)

node.js express passport-local passport.js

1
推荐指数
1
解决办法
3635
查看次数