我使用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/