Básicamente, no entiendo por qué funciona la segunda función de flecha y la primera no.
//this one doesnt this.setState = () => { text: e.target.value, }; //this one works this.setState(() => ({ text: e.target.value, }));El primero es una asignación , el segundo realiza la ejecución .
El primero asigna la función de flecha a this.setState y dado que existe una función llamada setState en this , la función de flecha la sobrescribirá.
El segundo pasa la función de flecha como argumento a setState y setState llamará a la función que acabas de pasar en algún momento de su ejecución.
Puede consultar la documentación para tener una mejor idea de lo que hace setState.