Reactjs 为什么onClick在某些情况下不起作用?

Reactjs 为什么onClick在某些情况下不起作用?,reactjs,onclick,components,Reactjs,Onclick,Components,出于某种奇怪的原因,onClick在我的React应用程序中不起作用 <GorillaSurfIn onClick={() => { console.log('gorilla clicked'); setShouldGorillaSurfOut(true); }} /> { log('gorilla click

出于某种奇怪的原因,onClick在我的React应用程序中不起作用

<GorillaSurfIn
                onClick={() => {
                    console.log('gorilla clicked');
                    setShouldGorillaSurfOut(true);
                }}
            />
{
log('gorilla clicked');
SetShouldGorillarSurfOut(真);
}}
/>
正如您所看到的,我在控制台中记录了它,但我在控制台中没有看到任何东西。 很奇怪。这是盒子


它应该做的是在单击GorillarSurfin后渲染GorillarSurfin。

我认为这是因为GorillarSurfin是一个自定义组件,对吗

onClick事件仅适用于DOM元素,例如div


要使其工作,您必须在组件内获得道具,并将其应用于组件内的div

我认为这是因为GorillarSurfin是一个自定义组件,对吗

onClick事件仅适用于DOM元素,例如div


要使其工作,您必须在组件内获取道具,并将其应用于组件内的div

您的GorillarSurfin组件从不使用其传递的道具。您需要让它使用onClick道具做一些事情,可能需要将它传递到div中

const GorillaSurfIn = (props) => {
    return (
        <div id="moving-gorilla" onClick={props.onClick}>
            <motion.img
                animate={{
                    x: 530,
                    y: 350,
                    transition: { duration: 3 }
                }}
                id="gorilla-surf-gif"
                src={require('../images/surfing_gorilla.gif')}
            />
        </div>
    );
};
const GorillaSurfIn=(道具)=>{
返回(
);
};

您的GorillarSurfin组件从不使用其传递的道具。您需要让它使用onClick道具做一些事情,可能需要将它传递到div中

const GorillaSurfIn = (props) => {
    return (
        <div id="moving-gorilla" onClick={props.onClick}>
            <motion.img
                animate={{
                    x: 530,
                    y: 350,
                    transition: { duration: 3 }
                }}
                id="gorilla-surf-gif"
                src={require('../images/surfing_gorilla.gif')}
            />
        </div>
    );
};
const GorillaSurfIn=(道具)=>{
返回(
);
};

枝形吊灯阿克塞尔所说的是写的。 onClick事件侦听器用于React元素,而不是React组件。要为React组件添加事件侦听器,必须执行以下操作

函数测试({customClickEventHandler}){
返回测试按钮;
}
类Main扩展了React.Component{
render(){
返回(
console.log('Clicked')}/>
);
}
}

枝形吊灯阿克塞尔所说的是写的。 onClick事件侦听器用于React元素,而不是React组件。要为React组件添加事件侦听器,必须执行以下操作

函数测试({customClickEventHandler}){
返回测试按钮;
}
类Main扩展了React.Component{
render(){
返回(
console.log('Clicked')}/>
);
}
}


尼古拉斯写的东西应该有用。不要尝试重新运行npm start和/或clear Catch,如果它不能立即工作,那么Nicholas写的应该工作。不要尝试重新运行npm启动和/或清除Catch,如果它不能立即工作