> we would be needing to call setState somewhere so that _onToggleCompleteAll() would know which way to toggle

Also as an idea, you could avoid toggling and just split it to two separate functions, rendering different buttons/behaviors based on state. Usually I have found it better to have idempotent functions instead of a toggle, as there usually needs to be separate text strings etc in any case.