No entiendo por qué devuelve 0, se supone que se incrementa en 1, ¿hay algo que no sepa sobre los cierres?
let i = 0; const getRenderValue = function() { return i++; }; const Component = function() { let hello = getRenderValue(); console.log(hello); // return 0, expected value 1 }; Component();Su cierre incrementa el valor de i en uno. Si hiciste console.log(i); en lugar de console.log(hello); , vería 1 en la pantalla como se esperaba.
Sin embargo, su cierre devuelve el valor de i antes del incremento, ya que devuelve i++ : es una propiedad del incremento de postfijo i++ que devuelve i antes y no después del incremento. Utilice el incremento de prefijo ++i si desea devolver el valor modificado.