私は、私のヘッダーとログインフォームが異なるコンポーネントであるリアクションサイトを作成しています。ログイン後にログアウトするためのログインリンクを変更する
答えて
あなたはコードでファイル 'golbal_emitter.js' を作成するには、グローバル持つEventEmitter
https://github.com/facebook/emitter
を使用することができます:あなたのコンポーネントで次に module.exports = new EventEmitter();
:(componentDidMount中)
ヘッダー: var emitter = require 'global_emitter'; emitter.addListener('afterLogin', function() {});
ログインコンポーネント(成功ログイン後): var emitter = require 'global_emitter'; emitter.emit('afterLogin');
最近似たようなことをしました。
簡単な解決策は、sessionStorageとreduxを使用することです。
jwtトークンをsessionStorageに格納し、レンダリングするたびにその存在を確認する必要があります(例:onComponentWillMount)。ログインしている場合は、「logged_in」状態を更新するアクションをディスパッチします。 Headerコンポーネントはlogged_in状態に従ってレンダリングされます。私達にあなたのコードを表示
class Header extends React.Component {
componentWillMount() {
if (sessionStorage.getItem('jwt'))
this.props.loginSuccess();
}
render() {
console.log("logged_in: ", this.props.logged_in);
if (this.props.logged_in) {
return (
<nav>
<NavLink to="/"
activeClassName="active">Home</NavLink>
{" | "}
<Link to="/products" activeClassName="active">Products</Link>
{" | "}
<a href="/logout">log out</a>
</nav>
);
} else {
return (
<nav>
<NavLink to="/"
activeClassName="active">Home</NavLink>
{" | "}
<Link to="/login" activeClassName="active">
log in</Link>
</nav>
);
}
}
}
コンポーネントのWillMountヘッダーメニューは、ログイン後にページを更新するときにのみ変更されますが、ページを更新する必要はありません –
- 1. ログイン後のログアウトのオプションが「ログアウト」に変更されない
- 2. ログインまたはログアウト後にnavbarの機能を変更する方法CakePHP 3?
- 3. Yii2、ログイン後ログアウトに変更しない。ログイン後にデータベースからIDを取得する方法
- 4. Laravel 5.3自動ログアウト後にログインする
- 5. ログインした後、アンドロイドログインボタンがアンドロイドログインボタンでログアウトに変わりました
- 6. TYPO3ログアウト後のウィンドウサイズ変更
- 7. Reails on Rails - ログインリンクをログアウトリンクに変更するには?
- 8. ログアウト後のログインの問題
- 9. ログイン/ログアウトの移行を管理するための提案
- 10. ログアウト後にログインしていないため、ログインしていません。
- 11. Laravel 5.3でログインとログアウト後にリダイレクトパスを変更するにはどうすればよいですか?
- 12. Facebookログインボタンをログアウトからログインに変更しますか?
- 13. .NETでログインした後にsessionidを変更する方法は?
- 14. ユーザがログインしている場合、ログインボタンをログアウトに変更したい。
- 15. ViewExpiredExceptionのためログアウトした後に2回ログインする必要があります
- 16. Bowserはログアウト後もログアウトしてもログインします。
- 17. C#ヘルプ!セッション自動ログアウト後に再ログイン
- 18. 自動ログアウト後にFOSUserとAngular.jsでログイン
- 19. ログイン/ログアウト時にメニュー項目を更新
- 20. ログイン後にナビゲーションドロワーのアイテムを変更するには
- 21. ログイン後、およびログアウトした後のコードネーム
- 22. リフレッシュ後にログアウトすると、1回のリクエストでログインしました。
- 23. phpログイン/ログアウトを1ページにする
- 24. ログイン後のメインページの変更
- 25. ログアウト後のログインへのリダイレクト(Identity Server 3)
- 26. ログインしてdevise gemでログアウトした後にユーザー属性を更新するには
- 27. 非ログイン後のDjangoログアウトとリダイレクト
- 28. PHP-ログインするためにログインする
- 29. sslログインをサポートするためにDirectadmin.inc.phpを変更する方法
- 30. ログアウト後にOpenfire ConversationIDが変更されました
:
私のヘッダーコンポーネントは次のようになります。これまでに何を試しましたか? – Jackowski
小道具と状態が面倒になるときは、イベントマネージャが必要です。そこにある回答を見てください:https://stackoverflow.com/questions/46139140/react-js-trigger-function-from-any-other-component。 – JulienD
https://facebook.github.io/react/docs/conditional-rendering.html別のログインコンポーネントとログアウトコンポーネントを使用するか、ログイン時に何かをレンダリングするためにログインコンポーネントを変更することができます。 – Malcor