Reactjs 将事件添加到克隆的组件

Reactjs 将事件添加到克隆的组件,reactjs,events,clone,Reactjs,Events,Clone,我使用以下方法克隆组件并修改其道具 const clone = React.cloneElement(<BallComponent>, { key: new Date().getTime() }); const clone=React.cloneElement({ 关键字:new Date().getTime() }); 如何将单击事件添加到此克隆组件,并在单击时调用其类中的函数? 我尝试了以下方法,但没有成功: const clone =

我使用以下方法克隆组件并修改其道具

    const clone = React.cloneElement(<BallComponent>, {
        key: new Date().getTime()
    });
const clone=React.cloneElement({
关键字:new Date().getTime()
});
如何将单击事件添加到此克隆组件,并在单击时调用其类中的函数? 我尝试了以下方法,但没有成功:

    const clone = React.cloneElement(<BallComponent>, {
        key: new Date().getTime()}
        onClick: alert('test');
    });
const clone=React.cloneElement({
关键字:new Date().getTime()}
onClick:警报(“测试”);
});

之前您正在关闭道具对象花括号。另外,传递onClick函数,而不是在那里调用alert,该函数将在组件装载时立即执行

const clone = React.cloneElement(<BallComponent>, {
    key: new Date().getTime()
    onClick: () => { alert('test') }
});

之前,您正在关闭道具对象卷曲支架。另外,传递onClick函数,而不是在那里调用alert,该函数将在组件装载时立即执行

const clone = React.cloneElement(<BallComponent>, {
    key: new Date().getTime()
    onClick: () => { alert('test') }
});

在该示例中,您正在执行
alert('test')
,并将其返回值分配给
onChange
,在本例中为
undefined

您需要的是传递一个函数:

 const clone = React.cloneElement(<BallComponent>, {
        key: new Date().getTime()}
        onClick: () => { alert('test') };
    });
const clone=React.cloneElement({
关键字:new Date().getTime()}
onClick:()=>{alert('test')};
});

在该示例中,您正在执行
alert('test')
并将其返回值分配给
onChange
,在本例中是
未定义的

您需要的是传递一个函数:

 const clone = React.cloneElement(<BallComponent>, {
        key: new Date().getTime()}
        onClick: () => { alert('test') };
    });
const clone=React.cloneElement({
关键字:new Date().getTime()}
onClick:()=>{alert('test')};
});

使用下面的代码片段,它就会工作

var Clone = React.cloneElement(<BallComponent/>, {
      key: new Date().getTime(),
      onClick: () => { alert('test') }
    });
var Clone=React.cloneElement({
关键字:new Date().getTime(),
onClick:()=>{alert('test')}
});
注意-确保BallComponent有onClick,除非警报不会触发


使用下面的代码片段,它就会工作

var Clone = React.cloneElement(<BallComponent/>, {
      key: new Date().getTime(),
      onClick: () => { alert('test') }
    });
var Clone=React.cloneElement({
关键字:new Date().getTime(),
onClick:()=>{alert('test')}
});
注意-确保BallComponent有onClick,除非警报不会触发