当前位置: 首页 > 知识库问答 >
问题:

React:this.reference.current是null时,组件didMount被称为[重复]

令狐宏伟
2023-03-14

我试图访问this.myref.current,但我不能做到这一点时,组件didMount被调用。有没有另一个函数我可以调用,当所有引用都链接时,它会起作用?

请注意,问题不仅仅是我不能访问.当前,更具体地说,我不能在组件安装期间访问它。我可以稍后在其他活动中访问它。

export default class Parentextends Component {
    constructor(props) {
        super(props);
        this.myref = React.createRef();
    }

    componentDidMount() {
        this.myref.current.childmethodname(); // this.myref.current is null
    }

    MyFn = () => {
        this.myref.current.childmethodname(); // This works
    }

    render() {
        return (<Child ref={this.myref} />);
    }
}

共有1个答案

曹焱
2023-03-14

正如Felix在他的评论中所说,在我看来,子组件是一个无状态(功能)组件,正如您在这个CodeSandbox中看到的,当使用有状态(类)组件时,一切都可以正常工作。

 类似资料:
  • 我试图更好地理解React组件的生命周期。我正在尝试将与React组件的生命周期相关的消息打印到控制台。在下面显示的组件中,我使用的是console。记录3次。但是,其中两个在控制台中打印两次。我用的是铬。这就是打印到控制台的内容。 为什么三个控制台中有两个是双重打印的。记录除componentDidMount之外的消息?谁来操纵控制台。componentDidMount的日志只打印一次。下面是组

  • 寻求澄清“此”在本上下文中的含义。为什么我需要在ajax请求之后将“this”绑定到回调?当我检查调试器时,不管我是否调用bind,它都会说'this'绑定到构造函数。

  • 问题内容: 著名的Angular App Structure最佳实践推荐 博客文章概述了新推荐的angularjs项目结构,该项目结构现在是面向组件而非功能的,或者在最初的github问题中命名为“ Organized by Feature”。 博客文章建议每个模块中的每个文件应以模块名称开头,例如: 问题是:与在功能上命名文件相反,在模块的每个文件名内重复模块名称有什么好处和坏处?例如: 我问的

  • 我有3个组件:、和。组件负责呈现,但其方式不同。 的render函数在运行时之前静态声明,如下所示: 而则处理在运行时动态接收和呈现,如下所示: 和都具有侦听器,以便在单击时更改其状态和重写器。我注意到,当单击时,它和都将被重新呈现。但是当我单击时,将只重新呈现父级,而不是。 是一个没有的功能组件,所以我不明白为什么它不能重播。有人能解释一下为什么会这样吗?我在与这个用例相关的文档中找不到任何东西

  • 在Node.js的主页上,清楚地写着- Node.js是一个基于Chrome的V8 JavaScript引擎构建的JavaScript运行时。 我试图理解什么是“构建的运行时”。经过一些谷歌搜索,我对此有了一些想法。 请检查我的理解,如果我弄错了,请在任何地方纠正我。如果我把整件事都搞错了,请详细解释。 程序运行时是一个特定的持续时间,程序在其中执行。 我们知道,诺德。js附带预编译的二进制程序,

  • 最后,我在它的活动onCreate中也恢复了对这个片段的引用: 但是,每次我旋转我的设备时,都会调用活动的onCreate,然后也会调用片段的onCreate!由于我将SetRetaInstance设置为true,所以不应该发生这种情况。这种行为有原因吗?