Ruby on rails 反应句柄登录

Ruby on rails 反应句柄登录,ruby-on-rails,reactjs,rails-api,refluxjs,Ruby On Rails,Reactjs,Rails Api,Refluxjs,我是ReactJS新手,我遵循了本教程: 在我对代码进行了一些更正以使其在我的设置中工作之后,我可以成功登录。但是当我重新加载页面时,SessionStore是空的 我的路由器: import React from 'react'; import { Provider } from 'react-redux' import { Router, Route, IndexRoute, hashHistory } from 'react-router'; // Base-Layout import

我是ReactJS新手,我遵循了本教程:

在我对代码进行了一些更正以使其在我的设置中工作之后,我可以成功登录。但是当我重新加载页面时,SessionStore是空的

我的路由器:

import React from 'react';
import { Provider } from 'react-redux'
import { Router, Route, IndexRoute, hashHistory } from 'react-router';

// Base-Layout
import Base from './layout/base';

// Pages
import index from './pages/index';
import Login from './pages/Login';

import SessionStore from './stores/session_store.js';

function requireAuth(store) {
  return (nextState, replace) => {
    // let { auth } = store.getState();

    console.log(store.isLoggedIn());

    // if (!auth || !auth.loggedIn)
    //   replace({ pathname: loginPath, query: { return_to: nextState.location.pathname } });
  };
}

export default (
  <Provider store={SessionStore}>
    <Router history={hashHistory}>
      <Route path="login" name="Login" component={Login} />
      <Route path="/" name="Home" component={Base} onEnter={requireAuth(SessionStore)}>
        <IndexRoute component={index}/>
      </Route>
    </Router>
  </Provider>
);
从“React”导入React;
从“react redux”导入{Provider}
从“react Router”导入{Router,Route,IndexRoute,hashHistory};
//基地布局
从“./layout/Base”导入Base;
//页数
从“./pages/index”导入索引;
从“./pages/Login”导入登录名;
从“/stores/session_store.js”导入会话存储;
功能要求授权(存储){
返回(下一状态,替换)=>{
//让{auth}=store.getState();
console.log(store.isLoggedIn());
//如果(!auth | |!auth.loggedIn)
//替换({pathname:loginPath,query:{return\u to:nextState.location.pathname}});
};
}
导出默认值(
);

当我成功登录后进入索引页面时,我得到一个“true”,但当我重新加载页面时,我得到一个“false”,也许任何人都可以帮助我。

你应该使用而不是。这是因为每次页面会话结束时,
sessionStorage
都会被清除,例如页面被刷新。

当我登录时,我的sessionStorage是空的。为什么你确定我要使用SessionStore的人?*是我在代码中看不到他在使用什么存储。@Evolutio我假设SessionStore是浏览器的
SessionStore
或普通javascript对象。无论哪种方式,这些都不会在页面刷新期间持久化。因此,您需要将其存储到
localStorage
或数据库。您使用的是
reflow
,还是
redux
?你说的是
reflection
,但是你在那里有
react redux
,并且把商店放在
react redux
提供者中,就像它是
redux
商店一样。我使用reflection,但我读到我可以使用reflection和redux的商店。但这并不能使我的登录在页面刷新后持久化。我想我应该使用localStorage。Redux和Reflux存储根本不能互换。更不用说:Reflux让状态进入商店的方法要比Redux简单得多。所以我不知道你为什么要这么做。我是说,商店里没有。