onClick 无法分配给 TypeScript React 中的类型 'IntrinsicAttributes' 错误

onClick not assignable to type 'IntrinsicAttributes' error in TypeScript React

我有一个组件代码:

Feedback.tsx

import React, { useState } from 'react';
import './Feedback.css';

import FeedbackButton from './FeedbackButton';

function Feedback() {
  const [isOpen, setIsOpen] = useState<boolean>(false)

  return (
    <div className="Feedback">
      <FeedbackButton onClick={() => setIsOpen(!isOpen)} />
    </div>
  );
}

export default Feedback;

FeedbackButton 组件如下所示:

FeedbackButton.tsx

import React from 'react';
import feedbackicon from './feedback.svg';
import './Feedback.css';

function FeedbackButton() {
  return (
    <button className="Feedback-button" type="button">
      <img src={feedbackicon} className="Feedback-button-icon" alt="feedback" />
    </button>
  );
}

export default FeedbackButton;

在线<FeedbackButton onClick={() => setIsOpen(!isOpen)} />我收到错误Type '{ onClick: () => void; }' is not assignable to type 'IntrinsicAttributes'. Property 'onClick' does not exist on type 'IntrinsicAttributes'.

我搜索了它并尝试使用 FunctionalComponent 修复它,但我得到了同样的错误。我怎样才能让 onClick 和 useState 一起工作?

function FeedbackButton(props:{onClick:()=>void}) {
  return (
    <button className="Feedback-button" type="button" onClick={props.onClick}>
      <img src={feedbackicon} className="Feedback-button-icon" alt="feedback" />
    </button>
  );
}

像这样的东西应该更适合你,你可以将类型从按钮 onclick 复制到你的道具,如果需要的话可以更好地打字