At 4:30, be sure to NEVER get into the habit to type "() => {}" even as a placeholder. Either "() => ()" or "() {}". The problem is that "() => {}" is legal syntax to return an empty Map from the function when it is called. Ouch!
Good question. There's more way to optimize the rebuilds. Wrapping the entire UserList widget (not just the return value) would be one way to prevent that UserList from rebuilding until the list is updated