我是否需要使用Redux或Context API

我有一个应用程序,用户像往常一样先登录。我的应用程序有几个屏幕,可通过react-native-navigation进行导航。


在登录之外的每个屏幕中,我都需要知道哪个用户正在使用我的应用程序,因为内容是由他/她的uniqueID专门化的。当用户成功登录时,我会获得该uniqueID,但是我不知道如何将其传递给其他屏幕。


我是否需要使用Redux或上下文API来处理此问题,或者是否存在另一种在不更改项目的情况下在屏幕之间来回传递数据的方法。


这是我的App.js:


import React, { Component, PropTypes } from 'react';

import { AppNavigator } from './components/Navigator';



 class App extends React.Component {

  render() {

    return (

      <AppNavigator />

    );

  }

}

export default App;

这是我的导航器组件:


const Stack = createStackNavigator({


    Main: { screen: MainScreen },

    Login: {screen: LoginScreen},

    Profile: {screen: ProfileScreen},

    NewSurvey: {screen: NewSurveyScreen},

},

    {

        initialRouteName: 'Login',

        headerMode: 'none',

        navigationOptions: {

            headerVisible: false,

            gesturesEnabled: false,

        }

    })


export const AppNavigator = createAppContainer(Stack);


POPMUISE
浏览 154回答 3
3回答

繁花如伊

我认为您正在根据共享的代码使用React Navigation。我建议您按照此处的建议实施身份验证流程,并使用Redux设置/访问uniqueID。Redux提供了更多的功能,并广泛用于状态管理。您可以在_signInAsync()中设置uniqueID,然后通过进行访问。LocalStorage可以是一种选择,但不是可行的解决方案,因为从LocalStorage访问值可能会影响应用程序性能。

收到一只叮咚

redux或react-context“ Redux是JavaScript应用程序的可预测状态容器。”“上下文提供了一种通过组件树传递数据的方法,而不必在每个级别手动传递道具。”对于低频更新(例如语言环境,主题更改,用户身份验证等),React Context非常合适。但是对于具有高频更新的更复杂的状态,React Context将不是一个好的解决方案。因为,React Context将在每次更新时触发重新渲染,因此手动进行优化非常困难。而且,像Redux这样的解决方案更容易实现。何时使用上下文API如果您仅在使用Redux以避免将props传递到深度嵌套的组件中,则可以使用Context API替换Redux何时使用ReduxRedux是可预测的状态容器,可在组件外部处理应用程序的逻辑,集中化应用程序的状态,使用Redux DevTools跟踪何时,何地,为什么以及如何更改应用程序的状态,或使用插件(例如Redux Form,Redux Saga, Redux撤消,Redux持久化,Redux记录器等在这种情况下,我们可以使用Redux。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript