<!--
  Please provide a clear and concise description of what the bug is. Include
  screenshots if needed. Please test using the latest version of the relevant
  React packages to make sure your issue has not already been fixed.
-->

React version:v17.0.1

## Steps To Reproduce
There maybe be a bug in following method
```
function updateEffectImpl(fiberFlags, hookFlags, create, deps): void {
  const hook = updateWorkInProgressHook();
  const nextDeps = deps === undefined ? null : deps;
  let destroy = undefined;

  if (currentHook !== null) {
    const prevEffect = currentHook.memoizedState;
    destroy = prevEffect.destroy;
    if (nextDeps !== null) {
      const prevDeps = prevEffect.deps;
      if (areHookInputsEqual(nextDeps, prevDeps)) {
        pushEffect(hookFlags, create, destroy, nextDeps);
        return;
      }
    }
  }

  currentlyRenderingFiber.flags |= fiberFlags;

  hook.memoizedState = pushEffect(
    HookHasEffect | hookFlags,
    create,
    destroy,
    nextDeps,
  );
}
```
Link to the source code: [https://github.com/facebook/react/blob/e316f785526e503eceed1ae33b7a06440084b9c9/packages/react-reconciler/src/ReactFiberHooks.new.js#L1320](https://github.com/facebook/react/blob/e316f785526e503eceed1ae33b7a06440084b9c9/packages/react-reconciler/src/ReactFiberHooks.new.js#L1320)

<!--
  Your bug will get fixed much faster if we can run your code and it doesn't
  have dependencies other than React. Issues without reproduction steps or
  code examples may be immediately closed as not actionable.
-->

Link to code example: [https://codesandbox.io/s/reacthooks-fkihz?file=/src/MaybeABug.js](https://codesandbox.io/s/reacthooks-fkihz?file=/src/MaybeABug.js)


<!--
  Please provide a CodeSandbox (https://codesandbox.io/s/new), a link to a
  repository on GitHub, or provide a minimal code example that reproduces the
  problem. You may provide a screenshot of the application if you think it is
  relevant to your bug report. Here are some tips for providing a minimal
  example: https://stackoverflow.com/help/mcve.
-->

## The current behavior
The first time click the button, it will not print the "effect" 
But the second click will print the "effect" 
the third will not, the fourth will be and so on

## The expected behavior
Maybe should always print nothing!

## Remarks
The reason for this phenomenon is when component entering re-render phase, the effect object is a big different in updateQueue and Hook object. But i think should be consistent。

In fact, i am not sure if it is a bug, so I look forward to receiving a reply, thanks
latestSetSnapshot(latestGetSnapshot(source._source));
        
        const lane = requestUpdateLane(fiber);
        markRootMutableRead(root, lane);
      } catch (error) {
        
        
        
        
        latestSetSnapshot(
          (() => {
            throw error;
          }: any),
        );
      }
    };
    const unsubscribe = subscribe(source._source, handleChange);
    if (__DEV__) {
      if (typeof unsubscribe !== 'function') {
        console.error(
          'Mutable source subscribe function must return an unsubscribe function.',
        );
      }
    }
    return unsubscribe;
  }, [source, subscribe]);