React setState + ¿De dónde viene "prevState"?

Acabo de empezar a aprender React y JavaScript.
Mientras revisaba el tutorial, llegué a este código de ejemplo de un componente, que crea un button para alternar.
Esto es parte del código:

class Toggle extends React.Component { constructor(props) { super(props); this.state = {isToggleOn: true}; this.handleClick = this.handleClick.bind(this); } handleClick() { this.setState(prevState => ({ // prevState? isToggleOn: !prevState.isToggleOn })); } 

2 cosas que me molestan aquí:

  1. ¿De dónde vino el argumento prevState ?
    No veo nada como var prevState = this.state; antes de llamarlo, y aún así, funciona.
  2. La syntax de la function de flecha: ¿por qué los paréntesis después de la flecha?
    ¿Por qué la típica arg => { statement; } arg => { statement; } syntax trabajo aquí?

Perdón por las preguntas de los novatos …

  1. prevState es provisto por Reac junto con props , ambos son opcionales.

  2. Los paréntesis permiten varias líneas donde, si no usaste el paréntesis, se te obligará a usar una return . Puedes usar una sola línea pero no necesitas las llaves.

    • Actualización : Olvidé mencionar un caso específico en el que se requiere tener paréntesis. Si devuelve un object sin una statement de return , debe envolverlo entre paréntesis. Gracias @joedotnot por atrapar eso. Entonces () => {foo: true} arrojará un error porque se ve como una function y foo: true es una línea no válida. Para solucionar esto, debe verse como () => ({ foo: true })