Reactjs 嵌套子组件的设置状态

Reactjs 嵌套子组件的设置状态,reactjs,Reactjs,我是一名嵌入式开发人员,不太会做出反应,我对子组件和嵌套子组件的行为有点纠结 我理解,对于任何要重新呈现的组件,状态必须更改。我正在使用一个菜单组件的示例,其中包含一个项组件。当某个全局级别的事件发生时,我希望更改项目组件显示的文本 下面是一个小提琴,它展示了一些我希望可以使用的代码: 单击div后,将调用菜单的setText函数,该函数调用item组件,设置状态。这个状态在item组件的render函数中使用,所以我希望item和menu都被重新呈现 相反,我得到一个错误,说明我无法设置尚未

我是一名嵌入式开发人员,不太会做出反应,我对子组件和嵌套子组件的行为有点纠结

我理解,对于任何要重新呈现的组件,状态必须更改。我正在使用一个菜单组件的示例,其中包含一个项组件。当某个全局级别的事件发生时,我希望更改项目组件显示的文本

下面是一个小提琴,它展示了一些我希望可以使用的代码:

单击div后,将调用菜单的setText函数,该函数调用item组件,设置状态。这个状态在item组件的render函数中使用,所以我希望item和menu都被重新呈现

相反,我得到一个错误,说明我无法设置尚未装入的对象的状态。我本以为它已经装好了

也许我通过调用this.componentname.render()将声明的组件与呈现函数中的组件链接起来的方式是问题所在,但除此之外,如何才能做到这一点呢


提前谢谢

这是您的沙盒的工作版本。


我看得出你是新来的。我建议您使用钩子而不是类组件。

嘿。你有太多关于反应的概念,所以回答你的问题实际上对你没有好处。这将对您更有利,您可以实际查看官方文档,并在此处查看“快速通道”::您好,了解YourElements,我非常感谢工作版本,谢谢。有趣的是,在学习React的过程中,我逐渐了解到,道具是不可变的,不能用于将要更改的内容,但您应该使用状态。另外,对于我的实际应用程序,item组件将相当复杂,有几个函数(它实际上是一个动态变化的复选框数组,每个复选框都有不同的函数),因此我不确定是否可以避免使用类组件。不可能像我尝试的那样吗?不可能像你尝试的那样。很简单,因为React不是这样工作的。您可以使用基于类或基于函数的组件。这并不重要。但请注意,基于函数的组件比基于类的组件更新。我建议你阅读这本简单的指南。它使用基于类的组件,这可能会帮助您。有趣的是,我以为我开始有反应了,但显然我还没反应过来。我会做那个教程-干杯!