javascript - 在父点击时将类添加到子组件

标签 javascript reactjs

我有一个像这样的功能性 React 组件:

const RefreshButton = () => (

        <IconButton >
            <RefreshIcon />
        </IconButton>

)

我需要的是在单击 IconButton (onClick) 时将动态类属性分配给子 RefreshIcon 节点,运行绑定(bind)到的 CSS 动画该类并在动画结束时删除该类 (onAnimationEnd)。

我的问题是我完全不知道如何从 onClickonAnimationEnd 回调中引用子组件。

我遇到过that主题,但这都是关于基于类的组件,我不太确定如何采用建议的解决方案,所以如果你能指出正确的方向,我将不胜感激。

最佳答案

有很多方法可以解决这个问题。我会用ref's并让类更改触发动画。

import React, { useRef } from 'react'

const RefreshButton = () => {
  const buttonInput = useRef(null);

  const onButtonClick = () => {
    // Do animations based on class change
    buttonInput.classList.add()
  };

  return (
    <IconButton onClick={onButtonClick} >
      <RefreshIcon ref={buttonInput} />
    </IconButton>
  )
}

关于javascript - 在父点击时将类添加到子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58879056/

相关文章:

node.js - 在 Windows 系统上安装 React Project 时出现问题

javascript - GraphQl 中的注册身份验证不起作用 : Error:- signupUser: null

javascript - react js Formik <Form/> resetForm() 不工作

javascript - 未捕获的 TypeError : Cannot read property 'classList' of null | But points to the element when I console. 记录它

javascript - 如何将动态单选按钮绑定(bind)到 Ember 中的 Controller 属性

javascript - 如何使 ES6 Bundle 中的 jQuery 可用于 HTML 中加载的外部脚本?

reactjs - React.js 样式组件导入图像并将其用作 div 背景

javascript - 路由器在 angular2-rc1 中不工作

javascript - 当答案超出数字范围或不是数字时执行

javascript - ReactJS:如何正确播放带有 onClick 事件的 html5 视频?