tabnavigatorでredux状態にアクセスする(react-navigation)

昨日

私はいくつかの値を保存するためにreduxを使用しています。これらの値の1つは、「seen」という名前のブール値です。(WebSocketを介して)新しいメッセージが到着するたびに「false」に更新され、メッセージ画面が開かれると、再び「true」に更新されます。

タブナビゲーターもあります。このタブナビゲーターには、ホーム、ユーザー、メッセージ、設定の4つのボタン(アイコン)があります。

「seen」の値が「false」の場合は常に、タブナビゲーターに追加のアイコンを表示して、ユーザーに新しいメッセージがあることを示したいと思います。だから私はtabnavigatorのreduxストアにアクセスしたいと思っています。

私のタブナビゲーターコードは次のとおりです。

const TabsNavigator = createMaterialTopTabNavigator(
    {
        Home: {
            screen: Home,
            navigationOptions: {
                tabBarIcon: () => (
                    <Icon library="far" icon="home" color="black" size={25} />
                )
            }
        },
        Users: {
            screen: Users,
            navigationOptions: {
                tabBarIcon: () => (
                    <Icon library="far" icon="users" color="black" size={25} />
                )
            }
        },
        Messages: {
            screen: Messages,
            navigationOptions: {
                tabBarIcon: () => {
                    return (
                    <View>
                        // HERE I WANT TO HAVE ACCESS TO THE REDUX STORE (SEEN)
                        // I WANT TO SHOW AN ICON WHEN SEEN = FALSE
                        {seen === false &&
                            <Icon library="far" icon="exclamation" color="black" size={25} />
                        }
                        <Icon library="far" icon="comment" color="black" size={25} />
                    </View>
                )}
            }
        },
        Settings: {
            screen: Settings,
            navigationOptions: {
                tabBarIcon: () => (
                    <Icon library="far" icon="cog" color="black" size={25} />
                )
            }
        }
    },
    {
        initialRouteName: 'Home',
        tabBarPosition: 'bottom',
        tabBarOptions: {
            showIcon: true
        }
    }
)

タブナビゲーターで(reduxストアにある)「seen」の値にアクセスするにはどうすればよいですか?useSelector(state => state.messages.seen)タブナビゲーターへの追加が機能せず、「フックは機能コンポーネントの本体からのみ呼び出すことができます」というエラーが表示されます。

giotskhada

これはあまりお勧めできませんが、構成したファイルからストアをエクスポートすると、Reduxの状態に直接アクセスできます。

例えば

const store = createStore(
  persistedAppReducer, // disregard the actual config
  undefined,
  applyMiddleware(NavMiddleware, LoggerMiddleware, EpicMiddleware)
);

export default store;

次に、これをインポートしてstore、次のように状態を取得できますstore.getState()

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

AWS Amplify Auth / react-navigation:認証状態にアクセスする方法は?

分類Dev

React Navigation(V2 / V3):画面上のnavigationOptionsでnavigation.state.indexにアクセスする方法

分類Dev

react-navigationを使用するとredux状態が送信されない

分類Dev

React-NavigationパラメーターとRedux状態に直接データを保存することの違い

分類Dev

React-NavigationでTabnavigatorのbackgroundColorとバッジを設定する

分類Dev

React NavigationのnavigationOptionsで非静的メソッドにアクセスすることは可能ですか?

分類Dev

react navigation: change tabNavigator style based on redux store

分類Dev

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

分類Dev

react-nativeとreact-navigationおよびredux [画面全体に状態を転送]

分類Dev

react-navigationで別のスタックにリセットする方法

分類Dev

React Navigation 'navigation' is props in props validation

分類Dev

Reactで子の親状態にアクセスする

分類Dev

Reactで子供の状態にアクセスする方法は?

分類Dev

React NativeのReact-Navigation:TabNavigatorのタブにバッジを追加する

分類Dev

React-navigation:TabNavigator で screenProps を渡すときにアプリがレンダリングされない

分類Dev

React Navigation probem with StackNavigator

分類Dev

React navigation Header

分類Dev

Reactコンポーネントの機能で新しいREDUX状態にアクセスする

分類Dev

redux-form: handleSubmit で状態とフォーム値にアクセスする

分類Dev

react-navigationを使用してReactNativeアプリのTabNavigatorのタブアイテムのクリックイベントを処理するにはどうすればよいですか?

分類Dev

Reactで子供の状態にアクセスする方法は?(Reactフック)

分類Dev

Navigation.push(wixからのreact Native Navigationのv2)を使用すると、宛先コンポーネントで小道具が取得されません。小道具にアクセスするにはどうすればよいですか?

分類Dev

アクションから状態にアクセスするRedux

分類Dev

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

分類Dev

外部からReact状態にアクセスする

分類Dev

react Native、react-navigation、TabNavigator、実行時に何かを判断する左上隅のボタンをクリックして戻る

分類Dev

reduxで状態にアクセスするたびに、mapDispatchToPropsとmapStateToPropsを宣言する必要がありますか?

分類Dev

@ react-navigation / drawerとreact-navigation-drawer

分類Dev

TabNavigator(react-navigation)を使用するときに、各画面に異なるパラメーターを渡します

Related 関連記事

  1. 1

    AWS Amplify Auth / react-navigation:認証状態にアクセスする方法は?

  2. 2

    React Navigation(V2 / V3):画面上のnavigationOptionsでnavigation.state.indexにアクセスする方法

  3. 3

    react-navigationを使用するとredux状態が送信されない

  4. 4

    React-NavigationパラメーターとRedux状態に直接データを保存することの違い

  5. 5

    React-NavigationでTabnavigatorのbackgroundColorとバッジを設定する

  6. 6

    React NavigationのnavigationOptionsで非静的メソッドにアクセスすることは可能ですか?

  7. 7

    react navigation: change tabNavigator style based on redux store

  8. 8

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

  9. 9

    react-nativeとreact-navigationおよびredux [画面全体に状態を転送]

  10. 10

    react-navigationで別のスタックにリセットする方法

  11. 11

    React Navigation 'navigation' is props in props validation

  12. 12

    Reactで子の親状態にアクセスする

  13. 13

    Reactで子供の状態にアクセスする方法は?

  14. 14

    React NativeのReact-Navigation:TabNavigatorのタブにバッジを追加する

  15. 15

    React-navigation:TabNavigator で screenProps を渡すときにアプリがレンダリングされない

  16. 16

    React Navigation probem with StackNavigator

  17. 17

    React navigation Header

  18. 18

    Reactコンポーネントの機能で新しいREDUX状態にアクセスする

  19. 19

    redux-form: handleSubmit で状態とフォーム値にアクセスする

  20. 20

    react-navigationを使用してReactNativeアプリのTabNavigatorのタブアイテムのクリックイベントを処理するにはどうすればよいですか?

  21. 21

    Reactで子供の状態にアクセスする方法は?(Reactフック)

  22. 22

    Navigation.push(wixからのreact Native Navigationのv2)を使用すると、宛先コンポーネントで小道具が取得されません。小道具にアクセスするにはどうすればよいですか?

  23. 23

    アクションから状態にアクセスするRedux

  24. 24

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

  25. 25

    外部からReact状態にアクセスする

  26. 26

    react Native、react-navigation、TabNavigator、実行時に何かを判断する左上隅のボタンをクリックして戻る

  27. 27

    reduxで状態にアクセスするたびに、mapDispatchToPropsとmapStateToPropsを宣言する必要がありますか?

  28. 28

    @ react-navigation / drawerとreact-navigation-drawer

  29. 29

    TabNavigator(react-navigation)を使用するときに、各画面に異なるパラメーターを渡します

ホットタグ

アーカイブ