На этот вопрос уже был дан ответ, но так как вы следуете учебнику, я предполагаю, что вы изучаете React и хотели бы указать на пару вещей, которые помогут вам:)
Указывалось на неправильное использование состояния, но только для пояснения (и причина, по которой я думаю, что вы использовали объект): «по-старому», с компонентами Class, состояние раньше было объектом, и вам нужно было обновить его как объект.Этот пример здесь показывает это.С помощью хуков вам не нужно устанавливать весь объект State, только это конкретное свойство состояния.Подробнее здесь .
Еще один момент, по крайней мере, в вашем примере CodePen вы пропустили импорт для useState
.Вам нужно либо импортировать его следующим образом import { useState } from React
, либо использовать его следующим образом React.useState
, поскольку это отдельный модуль, который не импортируется по умолчанию при импорте React.
Последний момент - при создании компонентовиспользуя цикл (например, <DrumPad>
с map
), вам необходимо предоставить атрибут «key» .это поможет React отслеживать вещи, которые необходимо обновить или перерисовать.
O обновите ваш код с помощью этих изменений в этой ссылке, если вы хотите, чтобы он работал:
https://codesandbox.io/s/reverent-browser-zkum2
Удачи и надеюсь, что вы наслаждаетесь React Hooks:)