React: map children of ReactDOM.findDOMNode(this)

React: map children of ReactDOM.findDOMNode(this)

我想获得 ReactDOM.findDOMNode 的 children(this) 这样我就可以根据参考来设计风格。具体显示 none 一些参考文献,在其他参考文献中显示是。

我以为我可以

blockNode = ReactDOM.findDOMNode(this).children

React.Children.map(blockNode, function(el) {
    console.log('el ',el);
})

错误响应:

invariant.js:39 Uncaught Invariant Violation: Objects are not valid as a React child (found: [object HTMLDivElement]). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons.

P.S。还尝试在 createFragment() 中包装 blockNode 但效果不佳

我找到了相同功能的解决方法。我以不同的方式解决了这个问题,也许这是更惯用的反应,而不是广泛地过滤字符串或对象以将其转换为我将根据多个引用更改的数组。考虑到那句话的后半部分是我假设这是做事的反应方式。

我通过在渲染中编写 toggleDisplay 函数来动态地附加到状态和内联样式,而不是关注焦点和操纵 refs。

信用

render (){
    var toggleDisplayFocus = function(stateVal) {
    var displayOrNo = stateVal ? "block" : "none";
    return {
       display: displayOrNo
    }
    }

    return (
    <div style={toggleDisplayFocus(this.state.synthFocusDisplay)}>
    contents of div
    </div>
    )
}

P.S。如果我不正确,并且有一个非常好的使用 react 或 react-dom API 的方法,请随意,我会选择你的答案作为最佳答案。