绑定元素“message”隐式具有“any”类型

绑定元素“message”隐式具有“any”类型

我想将信息从父级传递给子级,但我得到了错误:绑定元素“message”隐式地具有“any”类型。该怎么办?

父组件代码:

const Forms = () => {
    const [messageText, setMessageText] = useState("");
    useEffect(() => {
        API.getPosts()
        const handleMessage = () => {
            setMessageText("lox");
        }
    }, [])
    return (
        <div>
            <div style={{alignItems: "center", justifyContent: "center", textAlign: "center"}}>
                <Form message={messageText}/>
                <Form message={messageText}/>
            </div>
        </div>
    );
};
export default Forms; 

子组件代码:

const Form = ({message}) => {
    return (
        <div>
                <div className={form.form}>
                <h2 className={form.text}>{message}</h2>
                    <p>Автор: <span style={{textDecoration: "underline"}}>Author</span></p>
                </div>
        </div>
    );
};
export default Form; 

要修复此错误,您可以定义消息变量的类型,如下代码所示:

const Form = ({ message }: { message: string }) => {
  return (
    <div>
      <div className={form.form}>
        <h2 className={form.text}>{message}</h2>
        <p>
          Автор: <span style={{ textDecoration: "underline" }}>Author</span>
        </p>
      </div>
    </div>
  );
};
export default Form;

如果您不知道消息变量的类型,可以显式使用any类型,比如:{ message }: { message: any}。然而,如果可能的话,应该避免使用any,因为它会破坏使用TypeScript的好处。


ts