Вы выделяете ячейку по которой щелкаете, но состояние предыдущей выделенной ячейки не меняется.
1. Плохой вариант. Уведомляйте родителя о том, что выделяется ячейка и путь он хранит состояние какая ячейка/строка выделены.
// передавайте обработчик onClick ребенку и в него же передавайте статус ячейки
const TableCell = ({index, name, state, onClick}) => {...}
2. Хороший вариант. Вместо этого. лучше и onClick реализовать на уровне родительской таблицы, а не на каждую ячейку вешать обработчик события, это жутко неоптимально.