ra1028 / swiftui-hooks

🪝 A SwiftUI implementation of React Hooks. Enhances reusability of stateful logic and gives state and lifecycle to function view.

Home Page:https://ra1028.github.io/swiftui-hooks/documentation/hooks/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

useEffect seems to call dispose too late

kyunghoon opened this issue · comments

Example

struct ExampleView : HookView {
  var hookBody: some View {
    useEffect(.once) {
      print("useeffect create")
      return {
        print("useeffect dispose")
      }
    }
    return Text("")
      .onAppear() {
        print("swiftui create")
      } 
      .onDisappear() {
        print("swiftui dispose")
      }
}

Outputs the following

when view is created:

  • useeffect create
  • swiftui create

when view is disappears:

  • swiftui dispose

when view is recreated

  • useeffect create
  • useeffect dispose
  • swiftui create

Expected

useEffect's dispose to be called when the view disappears