出现这个问题的原因是因为Button组件需要一个onClick事件处理函数来处理单击事件,而useContext hook只能在函数组件本身内使用,无法传递给子组件。解决此问题的最简单方法是将onClick事件处理函数放在函数组件内,然后通过props传递给Button组件。
以下是一个示例代码:
import React, { useContext } from 'react';
import { MyContext } from './MyContext';
import Button from './Button';
function MyComponent() {
const { data } = useContext(MyContext);
function handleClick() {
// 处理单击事件
console.log(data);
}
return (
);
}
export default MyComponent;
在上面的代码中,我们从MyContext中获取数据并将单击事件处理函数handleClick传递给了Button组件。当用户单击按钮时,控制台将输出data的值。