수표가 기록 된 사용자에 대해 HOC가 있습니다.react-router v4 및 redux가있는 requireAuth
import React from 'react';
import { Redirect } from 'react-router-dom';
export default function requireAuthComponent(store, Component, redirectTo = '/') {
return class RequireAuthComponent extends React.Component {
render() {
const state = store.getState();
const auth = state.auth;
if (auth.logged) {
return <Component {...this.props} />;
}
return <Redirect to={redirectTo} />;
}
};
}
그리고 경로
import PrivatContainer from './container/PrivatContainer';
import requireAuth from '../../components/requireAuth';
export default store => ({
path: '/privat',
exact: true,
component: requireAuth(store, PrivatContainer),
});
PrivatComponent
import React from 'react';
export default ({ auth: { logged }, toggleLogin }) => (
<div>
<h1>Privat Route</h1>
<h3>User is {logged.toString()}</h3>
<button onClick={() => toggleLogin()}>Logout</button>
</div>
);
첫 번째 경로 모두가 잘 작동,하지만 난 logged: false
와 저장소를 변경할 때, 나는 아직도이 구성 요소에 머물에 입력 (경로) 한 번 경로를 호출하고 상점 업데이트시 업데이트하지 않기 때문에 상점 업데이트시 RequireAuthComponent
을 수정하거나 구독하는 방법은 무엇입니까?
내가 (자세한 내용은 어떻게 [인증 HOC] 설명 https://stackoverflow.com/questions/46379934/을 react-router-v4-authorized-routes-with-hoc)을 작성할 수 있습니다. 제 대답이 유용하다고 생각되면 알려주십시오. –