React / Redux-ReactコンポーネントのReduxストアから値を表示するにはどうすればよいですか?

ユージンゴールドバーグ

React / Reduxを始めたばかりです。

Firebaseで認証を実装し、ログインしたユーザーをReduxストアに保存できるようにしました。

App.js:

import React, { useEffect } from "react";
import { Switch, Route } from "react-router-dom";
import { ToastContainer } from "react-toastify";
import "react-toastify/dist/ReactToastify.css";

import Login from "./pages/auth/Login";
import Register from "./pages/auth/Register";
import Home from "./pages/Home";
import Header from "./components/nav/Header";
import RegisterComplete from "./pages/auth/RegisterComplete";

import { auth } from "./firebase";
import { useDispatch } from "react-redux";

const App = () => {
  const dispatch = useDispatch();

  // to check firebase auth state
  useEffect(() => {
    const unsubscribe = auth.onAuthStateChanged(async (user) => {
      if (user) {
        const idTokenResult = await user.getIdTokenResult();
        console.log("user", user);
        dispatch({
          type: "LOGGED_IN_USER",
          payload: {
            email: user.email,
            token: idTokenResult.token,
          },
        });
      }
    });
    // cleanup
    return () => unsubscribe();
  }, [dispatch]);

  return (
    <>
      <Header />
      <ToastContainer />
      <Switch>
        <Route exact path="/" component={Home} />
        <Route exact path="/login" component={Login} />
        <Route exact path="/register" component={Register} />
        <Route exact path="/register/complete" component={RegisterComplete} />
      </Switch>
    </>
  );
};

export default App;

私のReduxストアはIndex.jsで定義されています:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import { BrowserRouter} from "react-router-dom";
import 'antd/dist/antd.css';
import { createStore } from "redux";
import { Provider } from "react-redux";
import { composeWithDevTools } from "redux-devtools-extension";
import rootReducer from "./reducers";

const store = createStore(rootReducer, composeWithDevTools());

ReactDOM.render(
  <Provider store={store}>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </Provider>,
  document.getElementById('root')
);

ヘッダーコンポーネントに、「store.user.email」のようにReduxストアに保存されているログインユーザーの電子メールを表示したいと思います。これは、ブラウザーのReduxコンソールタブではっきりと確認できます。

Header.jsコンポーネントで「store」を取得する適切な方法は何ですか?

ニコラスタワー

機能コンポーネントを使用しているので、次を使用できますuseSelector

import { useSelector } from 'react-redux';

const Header = () => {
  const email = useSelector(store => store.user.email);

   // do whatever with the email
};

すべてのタイプのコンポーネントで使用できるもう1つのオプションはconnect、次のmapStateToProps関数で使用することです。

import { connect } from 'react-redux';

const Header = ({ email }) => {
  // do whatever with the email prop
};

const mapStateToProps = (store) => ({
  email: store.user.email
});

export default connect(mapStateToProps)(Header);

詳細については、useSelectorに関するドキュメントをご覧くださいhttps://react-redux.js.org/api/hooks#useselector

そして、ここに接続に関するドキュメントがあります:https//react-redux.js.org/api/connect

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

React-Redux-子コンポーネントからアクションをディスパッチするにはどうすればよいですか?

分類Dev

ReactとReduxでコンポーネントを再利用するにはどうすればよいですか?

分類Dev

ReactとReduxでコンポーネントを再利用するにはどうすればよいですか?

分類Dev

ReactコンポーネントのReduxストアに適切にアクセスするにはどうすればよいですか?

分類Dev

ReactコンポーネントでネストされたRedux状態にアクセスするにはどうすればよいですか?

分類Dev

react-redux接続コンポーネントでの再レンダリングを回避するにはどうすればよいですか?

分類Dev

Reduxの状態変更に基づいてReactコンポーネントのsetState()を作成するにはどうすればよいですか?

分類Dev

2つのコンポーネントでreact-reduxのconnectHOCでrefを使用するにはどうすればよいですか?

分類Dev

Reactコンポーネントの作成時にRedux状態を初期化するにはどうすればよいですか?

分類Dev

アクション情報をコンポーネント、React + Reduxに渡すにはどうすればよいですか?

分類Dev

同じコンポーネントでreact-reduxを使用してロードフラグを制御するにはどうすればよいですか?

分類Dev

`<Provider>`で最初に割り当てたときに、子コンポーネントから `react-redux`ストアにアクセスするにはどうすればよいですか?>

分類Dev

reactおよびredux-sagaのセレクターから小道具を更新した後にコンポーネントを再レンダリングするにはどうすればよいですか?

分類Dev

コンポーネントをフラッシュせずにAPIからのデータに基づいて再ルーティングするにはどうすればよいですか-React / Redux

分類Dev

Redux DevTools Extensionをreact-reduxストアに追加するにはどうすればよいですか?

分類Dev

React-Reduxの接続関数でラップされている機能的な子コンポーネントの参照にアクセスするにはどうすればよいですか?

分類Dev

ReactアプリケーションでReduxストアの一部のみをロードするにはどうすればよいですか?

分類Dev

Reduxストアに私の状態が表示されるのに、reactコンポーネントが未定義と表示するのはなぜですか?

分類Dev

非同期小道具がReactで渡される:reactでreduxストアを更新するためのキーを渡す方法は?[最初に上位コンポーネントから、次にreduxストアから]

分類Dev

React-Router-Dom NavLinkクリック時にReact-Reduxコンポーネントの再レンダリングを強制するにはどうすればよいですか?

分類Dev

Reduxストアからデータを取得し、React Nativeのコンポーネントで使用する方法

分類Dev

小道具(Reduxから取得するもの)をあるコンポーネントから別のコンポーネント(React / Redux)に渡す方法は?

分類Dev

actionCreator、小道具、コンポーネントはReact-Reduxでどのように接続しますか?

分類Dev

reduxに接続されたReactコンポーネントを使用するときに、型の安全性を維持するにはどうすればよいですか?

分類Dev

コンポーネントの小道具をReactからReduxに渡す方法は?

分類Dev

Redux / react。Reduxストアの配列のいくつかの要素を変更するにはどうすればよいですか?

分類Dev

Reduxフローで非同期データを使用してreactコンポーネントを再利用できるようにするにはどうすればよいですか?

分類Dev

あるコンポーネントから別のコンポーネントにreduxストアを渡すにはどうすればよいですか?

分類Dev

React Reduxでストア状態にアクセスするにはどうすればよいですか?

Related 関連記事

  1. 1

    React-Redux-子コンポーネントからアクションをディスパッチするにはどうすればよいですか?

  2. 2

    ReactとReduxでコンポーネントを再利用するにはどうすればよいですか?

  3. 3

    ReactとReduxでコンポーネントを再利用するにはどうすればよいですか?

  4. 4

    ReactコンポーネントのReduxストアに適切にアクセスするにはどうすればよいですか?

  5. 5

    ReactコンポーネントでネストされたRedux状態にアクセスするにはどうすればよいですか?

  6. 6

    react-redux接続コンポーネントでの再レンダリングを回避するにはどうすればよいですか?

  7. 7

    Reduxの状態変更に基づいてReactコンポーネントのsetState()を作成するにはどうすればよいですか?

  8. 8

    2つのコンポーネントでreact-reduxのconnectHOCでrefを使用するにはどうすればよいですか?

  9. 9

    Reactコンポーネントの作成時にRedux状態を初期化するにはどうすればよいですか?

  10. 10

    アクション情報をコンポーネント、React + Reduxに渡すにはどうすればよいですか?

  11. 11

    同じコンポーネントでreact-reduxを使用してロードフラグを制御するにはどうすればよいですか?

  12. 12

    `<Provider>`で最初に割り当てたときに、子コンポーネントから `react-redux`ストアにアクセスするにはどうすればよいですか?>

  13. 13

    reactおよびredux-sagaのセレクターから小道具を更新した後にコンポーネントを再レンダリングするにはどうすればよいですか?

  14. 14

    コンポーネントをフラッシュせずにAPIからのデータに基づいて再ルーティングするにはどうすればよいですか-React / Redux

  15. 15

    Redux DevTools Extensionをreact-reduxストアに追加するにはどうすればよいですか?

  16. 16

    React-Reduxの接続関数でラップされている機能的な子コンポーネントの参照にアクセスするにはどうすればよいですか?

  17. 17

    ReactアプリケーションでReduxストアの一部のみをロードするにはどうすればよいですか?

  18. 18

    Reduxストアに私の状態が表示されるのに、reactコンポーネントが未定義と表示するのはなぜですか?

  19. 19

    非同期小道具がReactで渡される:reactでreduxストアを更新するためのキーを渡す方法は?[最初に上位コンポーネントから、次にreduxストアから]

  20. 20

    React-Router-Dom NavLinkクリック時にReact-Reduxコンポーネントの再レンダリングを強制するにはどうすればよいですか?

  21. 21

    Reduxストアからデータを取得し、React Nativeのコンポーネントで使用する方法

  22. 22

    小道具(Reduxから取得するもの)をあるコンポーネントから別のコンポーネント(React / Redux)に渡す方法は?

  23. 23

    actionCreator、小道具、コンポーネントはReact-Reduxでどのように接続しますか?

  24. 24

    reduxに接続されたReactコンポーネントを使用するときに、型の安全性を維持するにはどうすればよいですか?

  25. 25

    コンポーネントの小道具をReactからReduxに渡す方法は?

  26. 26

    Redux / react。Reduxストアの配列のいくつかの要素を変更するにはどうすればよいですか?

  27. 27

    Reduxフローで非同期データを使用してreactコンポーネントを再利用できるようにするにはどうすればよいですか?

  28. 28

    あるコンポーネントから別のコンポーネントにreduxストアを渡すにはどうすればよいですか?

  29. 29

    React Reduxでストア状態にアクセスするにはどうすればよいですか?

ホットタグ

アーカイブ