【发布时间】:2019-09-09 11:47:12
【问题描述】:
我有一个用户像往常一样首先登录的应用程序。我的应用有几个屏幕,由react-native-navigation 导航。
在登录以外的每个屏幕上,我都需要知道哪个用户正在使用我的应用程序,因为内容是由他/她的uniqueID 专门提供的。当用户成功登录时,我得到了uniqueID,但我不知道如何将这个uniqueID 传递到其他屏幕。
我是否需要使用Redux 或context 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);
【问题讨论】:
-
使用
redux对你更好 -
@ma_dev_15 这是有争议的,这就是这个问题的问题。另外,这已经been asked了。
-
你也可以使用本地存储
-
好吧,为了让你更清楚,如果你使用
redux的连接,你可以在 props 中获取用户详细信息,而使用context时,你最终会在每个组件中写入Consumer。所以,你可以决定哪个会更好看?当Provider的值发生变化时,所有Consumer都会重新渲染,这对性能有很大影响reactjs.org/docs/context.html#caveats -
我认为您的问题并不清楚,如果您的问题只是通过屏幕传递数据,请阅读我的答案,但如果您的意思是使用哪一个(redux - contextAPI),那将是……跨度>
标签: javascript reactjs react-native redux jsx