Reactjs p5.js mousePressed事件返回未定义

Reactjs p5.js mousePressed事件返回未定义,reactjs,p5.js,Reactjs,P5.js,我不能让鼠标按下来记录鼠标事件。我甚至不确定在设置功能中使用它是否正确 从“React”导入React; 从“react-p5”导入草图; 常量应用程序:React.FC=()=>{ 常量设置=(p5:any)=>{ canvas=p5.createCanvas(window.innerWidth,window.innerHeight); canvas.mouseWheel((e:MouseEvent)=>{ console.log(e);//控制盘事件 }); canvas.mousePre

我不能让鼠标按下来记录鼠标事件。我甚至不确定在设置功能中使用它是否正确

从“React”导入React;
从“react-p5”导入草图;
常量应用程序:React.FC=()=>{
常量设置=(p5:any)=>{
canvas=p5.createCanvas(window.innerWidth,window.innerHeight);
canvas.mouseWheel((e:MouseEvent)=>{
console.log(e);//控制盘事件
});
canvas.mousePressed((e:MouseEvent)=>{
console.log(e);//未定义
});
};
常量绘制=(p5:任意)=>{
p5.背景(50);
p5.填充(0);
p5.rect(25,25,50,50);
};
返回(
);
};
导出{App};
react-p5库的指示您应该使用鼠标按下的
方法作为道具,因此尝试在
设置
之外定义它,然后传递:

const mp = (e: MouseEvent) => {
  console.log(e);
})

<Sketch setup={setup} draw={draw} mousePressed={mp}/>
const mp=(e:MouseEvent)=>{
控制台日志(e);
})

尽管如此,我还是尝试在
设置
中定义了其他几种方法,所有这些方法似乎都正常工作
mousePressed
是唯一一个需要作为道具传递的道具。

我已经回答了这个关于开放GitHub问题的问题,以便只使用一个通道跟踪并解决这个问题

感谢这一点,我现在得到一个新的错误
Type'(e:MouseEvent)=>void'不能分配给Type'(p5:p5)=>void'。参数“e”和“p5”的类型不兼容。类型“P5”缺少类型“MouseeEvent”中的以下属性:altKey、button、buttons、clientX和其他42个.ts(2322)index.d.ts(26,2):预期类型来自属性“mousePressed”,该属性在类型“IntrinsicatAttributes&IntrinsicClassAttributes&Readonly&Readonly”中声明。
。。。我刚刚运行了你的codesandbox链接并测试了通过
mp2
,没有发现任何错误。无论如何,这可能与
react-p5
处理方法的方式有关;如果您检查源代码,您会发现,出于某种原因,它将对p5的引用作为参数传递给所有事件:
this.props[event](p)
。现在我检查一下,登录到
mp2
的是一个p5对象,而不是mouseEvent。也许可以检查另一个包装器库?
const mp = (e: MouseEvent) => {
  console.log(e);
})

<Sketch setup={setup} draw={draw} mousePressed={mp}/>