javascript - 如何递归遍历react树并获取react元素的状态?

标签 javascript reactjs

我使用react-children-utilities像这样递归地遍历 react 树:

import Children from 'react-children-utilities';
...

Children.deepForEach(window.rootNode, (child) => {
    if (child.props.key === '...') {
          //child.state === undefined
    }
});

我需要做的是访问元素的状态,但在上面的代码中我无法做到这一点。如果我理解正确的话:问题是,上面代码中的 child 是一个 React 元素,而不是一个 React 组件。那么,有没有办法从 react 元素中获取状态呢?

否则,除了react-children-utilities还有其他方法吗?递归遍历 react 树并获取 react 组件/元素的状态?

最佳答案

我是 react-children-utilities 的作者。您描述的问题我认为它违反了 React 的原则,因为组件不会将其状态暴露给父组件。如果您需要从子元素中获取某些内容,我建议实现一个事件并从中传递一个值。

关于javascript - 如何递归遍历react树并获取react元素的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56319163/

相关文章:

javascript - 隐藏div中的jqGrid宽度不正确

Javascript Date c`tor 返回错误的时间

javascript - 有没有一种方法可以将我所有的函数和 for-loop 合并到一个函数中,因为我需要 (str) 由网站提供

javascript - 如何将动态元素添加到从 React ref 中提取的特定 Html 节点?

javascript - Webpack4优化问题

javascript - 海图仪表

javascript - React 调度未定义删除操作

javascript - Reactjs:删除数组元素,元素状态不跟随

javascript - 使用饼图 React-highcharts 的 on click 而不覆盖默认的 onclick 函数

javascript - 如何在react redux表单中成功创建帖子后刷新列表