在应用程序运行时存储数据[React Native]

时间:2019-06-20 03:48:36

标签: react-native variables session

我正在尝试在我的应用程序中设置一个变量,该变量仅在应用程序运行时才有效,并且在退出应用程序时将被销毁。这个概念类似于Web浏览器中的会话,其中只有在关闭浏览器时,会话才会被破坏。

由于某些原因,我无法使用from anymail.message import attach_inline_image from django.core.mail import EmailMultiAlternatives msg = EmailMultiAlternatives( from_email=<FROM_EMAIL>, to=<TO_EMAIL>, subject='test') buf = BytesIO() fig.savefig(buf, format="png") # matplotlib chart buf.seek(0) buf_id = 0 cid = attach_inline_image(msg, buf.read(), idstring=buf_id, filename=buf_id) html = '<html><img src="cid:{}"></html>'.format(cid) msg.attach_alternative(html, "text/html") msg.send() ,因为当触发state动作时,它将被更新。我曾想过使用dispatch,但由于它在设备中存储了变量,因此在我的情况下也不起作用。否则,有一种方法可以在应用程序退出时执行AsyncStorage.setItem(),而不会触发任何按钮。

2 个答案:

答案 0 :(得分:0)

使用redux,因为它确实具有您想要的行为。您可以将其存储在商店中,并且在退出应用程序时会被销毁。

答案 1 :(得分:0)

正如上面评论中所指出的,AppState API似乎是您的朋友。未经测试的示例代码:

class AppStateExample extends Component {

  componentDidMount() {
    this.temp = "something"
    AppState.addEventListener('change', this.handleAppStateChange);
  }

  handleAppStateChange = (nextAppState) => {
    if (nextAppState.match(/inactive|background/)) {
      this.temp = null
    }
  };

}