Вызов функции из другого файла в ReactJS

Я смотрю на другие вопросы, но не могу решить мою проблему. Я пытаюсь вызвать функцию для открытия модального окна с помощью 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>
  )

Любой совет?

Пожалуйста, создайте Минимальный, полный и проверяемый пример, иначе кому-то будет трудно вам помочь.

Tholle 21.03.2019 17:08

используйте export default openModal и импортируйте его в свой файл.

Black Hole 21.03.2019 17:11

В этой строке onClick = {(e) => openModal(event.id)} вы объявляете параметр как e, но используете переменную event:/

lankovova 21.03.2019 17:16

Извините за неполный способ показать код. Ланковова понимает это правильно, но я делаю немного больше. Отвечу правильным способом, который работает для меня. Спасибо всем

Altair Todescatto F 21.03.2019 21:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
4
289
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

По сути, этот проект абстрагирует большинство компонентов, чтобы их можно было повторно использовать и было проще обслуживать. Отцовский индекс, в котором модальная конструкция и логика обрабатывают вещи, имел прослушиватель событий для получения переданных реквизитов, а сыновний индекс, где страница показывается пользователю, и имел кнопку удаления, просто передающую реквизиты для вызова функции для выполнения работа.

Итак, в TableEventsComponent, который я поместил во второй блок кода по вопросу, я поставил

openModal = {openModal}

И на странице у меня была кнопка, у меня была

const TableEventsComponent = ({
  openModal,
  ...
})

Вот именно, я просто не общаюсь так, как должно быть.

Другие вопросы по теме