Решение
Проблема, с которой вы столкнулись, заключается в том, что вы не деструктурируете переданный объект props.
const Modal = (handleClose, show, children) => {
следует вместо этого ставить фигурные скобки вокруг аргументов
const Modal = ({handleClose, show, children}) => {
Краткое объяснение
Свойства, передаваемые функциональному компоненту, представляют собой один объект с ключами, которые соответствуют имени переданного объекта. Форма объекта будет:
{
handleClose: [function],
show: true,
children: ...
}
Чтобы получить реквизиты, вы можете иметь один аргумент (идиоматически названный props
), а затем обращаться к значениям из этого объекта:
const Hello = (props) => {
console.log(props.message);
}
Или вы можете использовать назначение деструктуризации (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment) для извлечения реквизита в аргументы функции:
const Hello = ({message}) => {
console.log(message);
}