用单独的文件反应本地全局对象

时间:2019-10-02 18:46:05

标签: javascript reactjs react-native

我有一个新的React Native应用,现在所有内容都保存在一个文件中。以减少技术负担和增加模块化的名义,我想开始将我的几个屏幕组件中的每个组件移到单独的文件中。问题在于,有些状态(用户数据)和功能(网络,持久性数据)是全局的,并在我的App的各个屏幕上使用。

由于这个原因,我既无法将屏幕代码移动到单独的文件中,又无法在整个应用程序中利用全局状态:

var globalState = {
  val: "Default",
}

class HomeScreen extends React.Component {
  render() {
    return (
      <View></View>
    )
  }
  someFunction = () => {
    Alert.alert(globalState.val);
  }
}

class LoginScreen extends React.Component {
  render() {
    return (
      <View></View>
    )
  }

  someFunction = () => {
    globalState.val = "Something";
  }
}

基本上,我想从两个屏幕访问globalState,但是将它们放在单独的文件中。我希望每个屏幕 share globalState对象,以便一个屏幕可以更新信息,而另一个屏幕可以访问该信息。

我想在不使用Redux之类的其他库的情况下解决此问题。

1 个答案:

答案 0 :(得分:0)

您需要使用Redux或Mobx之类的全局状态管理解决方案,或者使用React的Context API或useContext挂钩之类的东西。