如何使用钩子访问Preact中子组件的DOM元素?

夏尔·帕蒂尔

我正在使用带有钩子的Preact。我有以下按钮组件:

export function Button(props) {
    return (
        <button class={props.class}>{props.children}</button>
    );
}

我还有另一个父组件,我需要在其中访问实际的DOM元素按钮以进行动画处理。

export function Parent(props) {
    const buttonElm = useRef(null);

    useEffect(() => {

        console.log(buttonElm.current);

        // Animate button using popmotion or similar
    });

    return (
        <div>
            <Button ref={buttonElm}>Click me to animate</Button>
        </div>
    );
}

但是,有一个问题。buttonElm.current指向JSX对象点,即Button不是DOM元素button我需要buttonElm指出实际的DOM元素。我怎么做?

我应该继续使用buttonElm.current.base财产吗?但这对钩子来说并不是惯用的。

另外,我有两个问题。

  1. ref在将Preset组件设置为使用会返回多个元素的Preact组件上时,该如何操作<Fragment />
  2. 其次,在Preact / React中为动画目的访问子级DOM元素是否可接受/正确?(我可以将组件包装到另一个包装器中,div但这比解决问题引起更多的动画麻烦)
凯斯

你需要通过refprops您的孩子组成。通过这样做buttonElm将指向实际的Button DOM元素。

  export function Button(props) {
        return (
            <button class={props.class} ref={props.buttonElm}>{props.children}</button>
        );
    }

export function Parent(props) {
    const buttonElm = useRef(null);

    useEffect(() => {

        console.log(buttonElm.current);

        // Animate button using popmotion or similar
    });

    return (
        <div>
            <Button buttonElm={buttonElm}>Click me to animate</Button>
        </div>
    );
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用jsoup访问Java中子元素的属性?

来自分类Dev

如何在不向其父/子添加逻辑的情况下获得组件中子元素的dom节点?

来自分类Dev

如何在不向其父/子添加逻辑的情况下获得组件中子元素的dom节点?

来自分类Dev

如何从React钩子访问功能组件的名称?

来自分类Dev

如何使用angularjs访问html元素dom

来自分类Dev

如何访问插槽中子组件的反应性数据?

来自分类Dev

如何使用React中子组件的状态更新父组件?

来自分类Dev

如何使用React中子组件的状态更新父组件?

来自分类Dev

如何使用React中子组件的状态更新父组件?

来自分类Dev

在单个文件组件中使用挂载钩子:如何检查 IMG 元素?

来自分类Dev

如何修改 React 组件以使用钩子?

来自分类Dev

我如何使用jquery访问DOM内部的下拉列表元素?

来自分类Dev

如何在React的父组件上通过onChange调用访问内部虚拟DOM元素

来自分类Dev

如何使用指定了默认自定义钩子的组件接口访问React Router历史记录对象

来自分类Dev

访问VusJS中子组件内部的插槽功能

来自分类Dev

如何使用dom元素

来自分类Dev

如何获取当前Vue组件的DOM元素?

来自分类Dev

NgComponent:如何从DOM元素获取组件实例?

来自分类Dev

如何从组件访问父HTML元素?

来自分类Dev

如何正确访问试剂组件的子元素?

来自分类Dev

如何访问外部组件的内部元素

来自分类Dev

如何访问反应组件中的样式元素?

来自分类Dev

Preact.js 如何创建分层组件

来自分类Dev

如何使用钩子从子组件中重新渲染父对象?

来自分类Dev

如何在组件库中使用React钩子?

来自分类Dev

如何使用钩子在Redux中重新渲染组件

来自分类Dev

如何使用React-Native获取父ListView组件中子复选框组件的状态?

来自分类Dev

如何使用react testing库对父组件中子组件的渲染进行单元测试?

来自分类Dev

如何在iFrame中访问DOM元素

Related 相关文章

  1. 1

    如何使用jsoup访问Java中子元素的属性?

  2. 2

    如何在不向其父/子添加逻辑的情况下获得组件中子元素的dom节点?

  3. 3

    如何在不向其父/子添加逻辑的情况下获得组件中子元素的dom节点?

  4. 4

    如何从React钩子访问功能组件的名称?

  5. 5

    如何使用angularjs访问html元素dom

  6. 6

    如何访问插槽中子组件的反应性数据?

  7. 7

    如何使用React中子组件的状态更新父组件?

  8. 8

    如何使用React中子组件的状态更新父组件?

  9. 9

    如何使用React中子组件的状态更新父组件?

  10. 10

    在单个文件组件中使用挂载钩子:如何检查 IMG 元素?

  11. 11

    如何修改 React 组件以使用钩子?

  12. 12

    我如何使用jquery访问DOM内部的下拉列表元素?

  13. 13

    如何在React的父组件上通过onChange调用访问内部虚拟DOM元素

  14. 14

    如何使用指定了默认自定义钩子的组件接口访问React Router历史记录对象

  15. 15

    访问VusJS中子组件内部的插槽功能

  16. 16

    如何使用dom元素

  17. 17

    如何获取当前Vue组件的DOM元素?

  18. 18

    NgComponent:如何从DOM元素获取组件实例?

  19. 19

    如何从组件访问父HTML元素?

  20. 20

    如何正确访问试剂组件的子元素?

  21. 21

    如何访问外部组件的内部元素

  22. 22

    如何访问反应组件中的样式元素?

  23. 23

    Preact.js 如何创建分层组件

  24. 24

    如何使用钩子从子组件中重新渲染父对象?

  25. 25

    如何在组件库中使用React钩子?

  26. 26

    如何使用钩子在Redux中重新渲染组件

  27. 27

    如何使用React-Native获取父ListView组件中子复选框组件的状态?

  28. 28

    如何使用react testing库对父组件中子组件的渲染进行单元测试?

  29. 29

    如何在iFrame中访问DOM元素

热门标签

归档