#reactjs
Вопрос:
У меня есть компонент AlertError
, который отображает сообщение, поступающее из реквизита, и я хочу onClick
, чтобы в этом сообщении также вызывалась функция, поступающая из реквизита,
Эта вызываемая функция отличается в зависимости от родительских компонентов AlertError
,
Мне удалось отобразить сообщение, но функция не выполняется,
Я показываю вам небольшой воссозданный пример, чтобы спросить вас, что в этом плохого,
Компонент 1
function Component1() {
function one() {
console.log("one");
}
return <AlertError message="one" function={() => one()} />
}
Компонент 2
function Component2() {
function two() {
console.log("two");
}
return <AlertError message="two" function={() => two()} />
}
Предупреждение о компонентах
function AlertError() {
return <div onClick={props.function}>{props.message}</div>
}
Комментарии:
1. Не могли бы вы, пожалуйста, создать для этого Stackblitz или кодовый файл? Я не вижу никаких проблем в вашем коде?
2. Вот рабочая демонстрация stackblitz.com/edit/react-h3f8e9?file=src/App.js
3. ответчик ниже исправил это, мой файл не был сохранен, и я забыл передать реквизиты в качестве параметров оповещения, спасибо за потраченное время
Ответ №1:
Ты забыл реквизит
function AlertError(props) { //<--- props here
return <div onClick={props.function}>{props.message}</div>
}
https://codesandbox.io/s/relaxed-monad-isuqf?file=/src/App.js
Комментарии:
1. он работает в codesandbox. Может быть, вы делаете что-то, что не отражено в предоставленном вами коде?
2. хорошо, извините, мой файл не был сохранен,
props
он не был эффективным. Я отмечу ваш ответ как принятый. Какой позор, лол
Ответ №2:
<div role='button' onClick={props.function}>{props.message}</div>
добавить роль div в качестве кнопки
Комментарии:
1. функция все еще не вызывается,
role="button"
предполагается ли ее вызывать ?2. эта роль не является обязательной, хотя она работает со мной