如何使用React函数组件获取当前对象的句柄

罗斯·阿特里尔

当我使用React类组件时,我可以轻松地获得当前对象的句柄,this并将其传递给其他函数,这些函数随后可以执行原始组件中的方法。所以这很好用:

import React, {Component} from 'react'

export default class PrintClass extends Component {

    componentDidMount() {
        executeRequestElsewhere(this)
    }

    print() {
        console.log("called back to class component ...")
    }

    render() {
        return (
            <div>
                Test Calling Method on Me
            </div>
        )
    }
}

function executeRequestElsewhere(caller) {
    caller.print()
}

this对于React函数组件,上述内容等效于什么是参考还是我必须使用bind或其他?

import React, {useEffect} from 'react'

const MyComponent = () => {

    useEffect(() => {
        console.log("Running effect")
        // What do I use for this?
        executeRequestElsewhere2(this)
    }, [])

    const print = () => {
        console.log("please call me :-) ...")
    }

    return (
        <div>
            Function Component
        </div>
    )
}

export default MyComponent

function executeRequestElsewhere2(caller) {
    caller.print()
}

我这样做的原因是我有一个外部功能来管理某些组件的动作执行。

一定的表现

功能组件没有实例,而只是普通函数对于类组件,通常在原型上定义与该组件关联的功能。对于功能组件,通常在函数体中内联声明与该组件关联的功能,也许与结合使用useCallback

对于您的情况,print在函数体中进行了声明,因此应将其传递给外部函数以进行调用:

 useEffect(() => {
    console.log("Running effect")
    executeRequestElsewhere2(print)
}, [])

function executeRequestElsewhere2(print) {
    print()
}

如果您有多个要从外部传递的函数,则可以传递包含所有函数的对象,例如:

executeRequestElsewhere2({ print, someOtherFn1, someOtherFn2 })
function executeRequestElsewhere2(fns) {
    fns.print()
    fns.someOtherFn2()
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在React函数组件中使用数组状态?

来自分类Dev

使用js获取嵌套数组对象的句柄

来自分类Dev

如何从axios处获取带有react函数组件的useState中的数据

来自分类Dev

如何从给定的对象数组中的日期获取当前星期

来自分类Dev

如何从React组件中的React函数获取价值

来自分类Dev

如何使用数组作为React组件的支持

来自分类Dev

如何使用从api获取的react组件?

来自分类Dev

如何使用defaultProps为React函数组件定义接口而不会引发丢失的类型错误?

来自分类Dev

在React中使用useEffect函数组件成功提交后如何清除输入字段

来自分类Dev

如何在React中获取当前页码onPagechange函数

来自分类Dev

如何创建调用句柄对象的 uicontrol 对象的回调函数

来自分类Dev

Python,Tkinter:如何使用其ID或标签获取所有画布对象的句柄?

来自分类Dev

如何在React Native中从单独的组件创建对象数组?

来自分类Dev

React组件在事件监听器函数中未获取当前状态值

来自分类Dev

如何使用JAVA获取sessionStorage的句柄

来自分类Dev

如何在React函数组件中调用API?

来自分类Dev

如何将属性传递给 React 函数组件?

来自分类Dev

如何从React组件函数prop获取返回值?

来自分类Dev

如何使用swift的高阶函数获取唯一值的数组对象

来自分类Dev

如何使用gson / retrofit获取对象数组?

来自分类Dev

如何使用php从对象获取数组键值

来自分类Dev

如何使用列数组获取对象的值?

来自分类Dev

如何使用@ ngrx / store获取State对象的当前值?

来自分类Dev

如何测试使用DateTime获取当前时间的函数?

来自分类Dev

使用React Jest酶-如何使用Shallow将构造函数对象传递给我的组件?

来自分类Dev

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

来自分类Dev

如何获取EL中当前组件的ID

来自分类Dev

如何从javascript数组对象/JSON获取数据并在React JS中使用它

来自分类Dev

如何获取全局数组对象函数的类型;

Related 相关文章

  1. 1

    如何在React函数组件中使用数组状态?

  2. 2

    使用js获取嵌套数组对象的句柄

  3. 3

    如何从axios处获取带有react函数组件的useState中的数据

  4. 4

    如何从给定的对象数组中的日期获取当前星期

  5. 5

    如何从React组件中的React函数获取价值

  6. 6

    如何使用数组作为React组件的支持

  7. 7

    如何使用从api获取的react组件?

  8. 8

    如何使用defaultProps为React函数组件定义接口而不会引发丢失的类型错误?

  9. 9

    在React中使用useEffect函数组件成功提交后如何清除输入字段

  10. 10

    如何在React中获取当前页码onPagechange函数

  11. 11

    如何创建调用句柄对象的 uicontrol 对象的回调函数

  12. 12

    Python,Tkinter:如何使用其ID或标签获取所有画布对象的句柄?

  13. 13

    如何在React Native中从单独的组件创建对象数组?

  14. 14

    React组件在事件监听器函数中未获取当前状态值

  15. 15

    如何使用JAVA获取sessionStorage的句柄

  16. 16

    如何在React函数组件中调用API?

  17. 17

    如何将属性传递给 React 函数组件?

  18. 18

    如何从React组件函数prop获取返回值?

  19. 19

    如何使用swift的高阶函数获取唯一值的数组对象

  20. 20

    如何使用gson / retrofit获取对象数组?

  21. 21

    如何使用php从对象获取数组键值

  22. 22

    如何使用列数组获取对象的值?

  23. 23

    如何使用@ ngrx / store获取State对象的当前值?

  24. 24

    如何测试使用DateTime获取当前时间的函数?

  25. 25

    使用React Jest酶-如何使用Shallow将构造函数对象传递给我的组件?

  26. 26

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

  27. 27

    如何获取EL中当前组件的ID

  28. 28

    如何从javascript数组对象/JSON获取数据并在React JS中使用它

  29. 29

    如何获取全局数组对象函数的类型;

热门标签

归档