Passing setState is totally fine. In fact its more stable. Unlike function we define, the reference of the setState doesn't change when component rerenders so we can also pass it directly to the memoized component. Meanwhile in case of the defined function we need to use useCallback to keep the reference same on every re-render. If the type of the function in the props is different then the type of state then we have to send another function. Otherwise, you can decide which you prefer.