The point is that you error correct without decoding.
Let's take the simple classical example of a repetition code. So, you have an encoded state
$$
\alpha|000\rangle+\beta|111\rangle.
$$
Now imagine there is an $X$ error on qubit 2, so the state is
$$
\alpha|010\rangle+\beta|101\rangle.
$$
If you decoded, you could see the state as
$$
(\alpha|0\rangle+\beta|1\rangle)|10\rangle.
$$
Measuring qubits 2 and 3 would tell you where an error had occurred, and that no correction is necessary. This is not what we want to do.
Instead, we never want to stop the state being 3 qubits. This is achieved by introducing two ancilla qubits. You can use one to ask "are qubits 1 and 2 the same", and another to ask "are qubits 2 and 3 the same"? You measure those ancillas. In my example, they would both answer "no", so under the assumption that there's at most one error, there must be an error on qubit 2. So, we apply $X$ to qubit 2 and get back to the original state
$$
\alpha|000\rangle+\beta|111\rangle.
$$
The game is to maintain the qubits in this encoded state, never looking at what the state is that's encoded, spotting if errors have occurred and fixing them.