**Do you want to request a *feature* or report a *bug*?**

Bug

**What is the current behavior?**

I've narrowed it down to this:

https://codesandbox.io/s/usetransition-useeffect-dependency-issue-2olmx

Basically, what I *think* is important is:

1. There's a state change resulting in the useEffect being called
2. The useEffect callback starts a transition
3. The transition callback sets state
4. The set state results in a render which suspends

If these are all the case, then including the `startTransition` function in the dependency array will trigger an infinite loop. In the codesandbox I have a safety in place so your browser doesn't fall over.

**What is the expected behavior?**

The `startTransition` function should be consistent between renders.

I've observed that if you do not inline the config to `useTransition` then this is not a problem. I know that the docs recommend keeping this config consistent, but if this is desirable behavior, then maybe a warning about this particular situation in the docs would be useful. I expect that inlining the config will be pretty natural for people.

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

- react@0.0.0-experimental-f6b8d31a7
- react-dom@0.0.0-experimental-f6b8d31a7
initialState: (() => S) | S,
): [S, Dispatch<BasicStateAction<S>>] {
  const hook = nextHook();
  const state: S =
    hook !== null
      ? hook.memoizedState
      : typeof initialState === 'function'
      ? 
        initialState()
      : initialState;
  hookLog.push({primitive: 'State', stackError: new Error(), value: state});
  return [state, (action: BasicStateAction<S>) => {}];
}
function useReducer<S, I, A>(
  reducer: (S, A) => S,
  initialArg: I,
  init?: I => S,
): [S, Dispatch<A>] {
  const hook = nextHook();
  let state;
  if (hook !== null) {
    state = hook.memoizedState;
  } else {
    state = init !== undefined ? init(initialArg) : ((initialArg: any): S);
  }
  hookLog.push({
    primitive: 'Reducer',
    stackError: new Error(),
    value: state,
  });