Я смотрю на другие вопросы, но не могу решить мою проблему. Я пытаюсь вызвать функцию для открытия модального окна с помощью reactJS, но кнопка вызова находится на одной странице, а модальные файлы находятся на другой для повторного использования при необходимости, но когда я нажимаю на нее, она возвращает не функциональную ошибку; Вот мой код.
Это кнопка. OpenModal не работает
<TableCell>
<DbButton
onClick = {(e) => openModal(event.id)}
>{<FormattedMessage id='delete' />}</DbButton>
</TableCell>
Это модальное окно в другом файле
const openModal = (eventId) => {
setOpen(true)
setEventId(eventId)
}
return (
<Panel border = {false}>
<TableEventsComponent
data = {dataList}
goTo = {goTo}
onChangePage = {onChangePage}
onChangeRowsPerPage = {onChangeRowsPerPage}
rowsPerPage = {rowsPerPage}
page = {page}
deleting = {deleting}
></TableEventsComponent>
<Dialog
open = {open}
onClose = {handleClose}
aria-labelledby = "alert-dialog-title"
aria-describedby = "alert-dialog-description"
>
<DialogTitle id = "alert-dialog-title">{<FormattedMessage id='alert-title' />}</DialogTitle>
<DialogContent>
<DialogContentText id = "alert-dialog-description">
{<FormattedMessage id='alert-body' />}
</DialogContentText>
</DialogContent>
<DialogActions>
<Button
onClick = {handleClose}
color = "primary">
{<FormattedMessage id='cancel' />}
</Button>
<Button
onClick = {handleConfirm}
color = "primary"
autoFocus>
{<FormattedMessage id='confirm' />}
</Button>
</DialogActions>
</Dialog>
</Panel>
)
Любой совет?
используйте export default openModal и импортируйте его в свой файл.
В этой строке onClick = {(e) => openModal(event.id)} вы объявляете параметр как e, но используете переменную event:/
Извините за неполный способ показать код. Ланковова понимает это правильно, но я делаю немного больше. Отвечу правильным способом, который работает для меня. Спасибо всем





По сути, этот проект абстрагирует большинство компонентов, чтобы их можно было повторно использовать и было проще обслуживать. Отцовский индекс, в котором модальная конструкция и логика обрабатывают вещи, имел прослушиватель событий для получения переданных реквизитов, а сыновний индекс, где страница показывается пользователю, и имел кнопку удаления, просто передающую реквизиты для вызова функции для выполнения работа.
Итак, в TableEventsComponent, который я поместил во второй блок кода по вопросу, я поставил
openModal = {openModal}
И на странице у меня была кнопка, у меня была
const TableEventsComponent = ({
openModal,
...
})
Вот именно, я просто не общаюсь так, как должно быть.
Пожалуйста, создайте Минимальный, полный и проверяемый пример, иначе кому-то будет трудно вам помочь.