#reactjs #typescript
#reactjs #typescript
Вопрос:
Привет, у меня есть панель мониторинга, которая вызывает отдельный файл для генерации уведомлений.
с уведомлением у меня есть кнопка x, чтобы отклонить уведомление, которое вызывает через props функцию, которая удаляет это уведомление из массива данных.
Но всякий раз, когда я пытаюсь вызвать функцию, нажав X, я получаю сообщение об ошибке, указывающее, что функция в файле панели мониторинга не является функцией.
handleNotification = (index: number) => {
console.log("notification" , index, "clicked")
TempData.splice(index, 1);
}
// this.props.divSelected controls the functionality to open cert tabe in correct DIV
render() {
const globalProps = {
notifications: TempData,
handleNotification: this.handleNotification
}
это код панели мониторинга
interface Props {
notifications: Array<object>
handleNotification: (index:number) => void
}
function GenerateMap(data: any, props:Props): JSX.Element {
return(
data.notifications.map((element: { type: string; message: string, }, i: number) => {
return (
<div key={i} className={element.type}>{element.message}<button onClick={() => { props.handleNotification(i) }}></button></div>
)
}))
}
это код уведомления.
<GenerateNotification {...globalProps}/>
вот как я передаю реквизиты из кода панели мониторинга в файл уведомлений.
единственное, о чем я могу думать, это то, что эта функция проходит через отдельный const Y, который вызывает эту функцию внутри файла.
но экспортируется только const Y ??
заранее спасибо
Комментарии:
1. Как вы переходите
globalProps
кGenerateMap
своей функции рендеринга?2. обновлено, чтобы включить запрошенный код
Ответ №1:
проблема, с которой я столкнулся, заключалась в том, что я пытался выполнить обратный вызов функции через props из функции const, а не из класса.
как только я изменил функцию const на класс, все заработало.