Update
I think I found an answer to this issue.
I created a state isLoggedIn which is checking whether or not Sign in with Apple is done successfully.
@State var isLoggedIn: Bool = false
Then I added View Modifier onChange which is checking the value change of isLoggedIn above. Inside the onChange I assigned a new value to router.currentPage like below.
.onChange(of: isLoggedIn, perform: { isLoggedIn in
	if isLoggedIn {
		router.currentPage = .tasklist
			} else {
				router.currentPage = .signin
			}
	})
But I am still not sure of why it doesn't work in the closure of SigninWithApple button.