вызов нескольких функций одним щелчком мыши

#javascript #reactjs

#javascript #reactjs

Вопрос:

Я хочу запустить две функции одним щелчком мыши. У меня есть компонент для создания «Звездного рейтинга» и «Раздела комментариев», где пользователь может вводить комментарии и отправлять. Во время отправки я хочу вызвать раздел оценки звезд и комментариев. Моя проблема в «Разделе комментариев», который я использую onChange, а затем конвертирую его в onclick. Но при отправке он выдает ошибку типа «btnSubmit», которая не является функцией. Может ли кто-нибудь помочь мне добиться результата? Заранее спасибо. Ниже приведен мой код.

 function StarRaating(props) {
  const { BtnSubmit } = props;
  let Comment = "";

  function handleChange(e) {
    console.log(e.target.value);
  }
  const Star = ({ selected = false, onClick = (f) => f }) => (
    <div className={selected ? "star selected" : "star"} onClick={onClick} />
  );

  const [starsSelected, selectStar] = useState(0);
  return (
    <div>
      <div className="star-rating">
        {[...Array(5)].map((n, i) => (
          <Star
            key={i}
            selected={i < starsSelected}
            onClick={() => selectStar(i   1)}
          />
        ))}
        <p>{starsSelected}</p>
      </div>
      <div className="">
        <textarea
          name="comment"
          className=""
          placeholder="Add a new comment"
          onChange={handleChange}
        ></textarea>
      </div>
      <div>
        <button
          className="Submit"
          onClick={(e) => {
            BtnSubmit(Comment);
            StarRaating();
          }}
        >
          Submit
        </button>
      </div>
    </div>
  );
}

export default StarRaating;
 

Комментарии:

1. Вы уже пробовали console.log(btnSubmit)?

2. Да, это не определено.

3. Итак, вы должны сначала исправить это, должно быть, что-то не так, когда вы передаете реквизит в StarRaating

4. Что такое BtnSubmit ? Это функция, переданная через props? если так, то так и должно быть props.BtnSubmit()

5. @sanketnaik Он сделал это правильно, используя деструктурирование в самом начале функции StarRaating