【问题标题】:React Native - Logout after 5 minutes with two screens (components)React Native - 使用两个屏幕(组件)在 5 分钟后注销
【发布时间】:2023-04-05 23:07:01
【问题描述】:

我有一个 expo 应用程序,我想在 5 分钟后实现自动注销。

在我创建的用户登录时显示的第一个组件中:

下面的代码可以正常工作,但是当我切换到新屏幕(新组件)时,我无法更新注销时间。

如何在下一个屏幕上更新时间?

componentWillMount() {
  this._panResponder = PanResponder.create({
    onMoveShouldSetPanResponderCapture: () => {
      clearTimeout(this.timeout)

      this.setState((state) => {
        if (state.inactive == false) return null
        return {
          inactive: false
        }
      })

      this.timeout = setTimeout(() => {
        this.setState({
          inactive: true
        })
      }, 300000)

      return false
    }
  })
}

componentWillUnmount() {
  clearTimeout(this.timeout)
}

在屏幕上,我输入了{... this._panResponder.panHandlers}

【问题讨论】:

    标签: reactjs settimeout native logout panresponder


    【解决方案1】:

    您应该制作通用组件并从通用组件继承所有组件。并且你应该在通用组件中实现上面的代码。

    【讨论】:

    • 我尝试过这样做,我创建了一个组件并将代码放入其中进行测试。 function LogoutAfterTime(TimeToLogout) { console.warn('its works') timeout = setTimeout(() => { Alert.alert('我正在出现...','5 秒后!') }, TimeToLogout);但是当我在屏幕 1 内调用组件时它可以工作,但是当我再次为屏幕 2 调用组件时它不起作用。时间和第一屏一样
    • @Ce8 你能分享完整的源代码吗?这样我就可以检查一下,可能还有其他与该问题相关的问题。
    • 我做不到,因为我里面还有其他业务代码。我的问题很简单。我想在 5 分钟后注销,但我必须在我的应用程序中显示屏幕,当用户更改屏幕时,我可以更新时间。我按照这个例子:codedaily.io/tutorials/140/…
    猜你喜欢
    • 2020-07-21
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    相关资源
    最近更新 更多