javascript - 如何将外部 DOM 附加到 React 组件?

标签 javascript reactjs

我有一个页面,其中包含在服务器中呈现的表单,它处理验证以及选择的正确值。

我想隐藏该表单的 DOM,并将其附加到 react 组件中,以便我可以在 react 路由器中使用它。

const NewItem = React.createClass({  
  render() {                          
    return (                          
      <div>                           
        <h1>New item</h1>
        {/* I WANT THE FORM FROM THE PAGE HERE*/}
      </div>                          
    )                                 
  }                                   
})                                    

最好的方法是什么?

最佳答案

您可以完全访问 componentDidMount 中的 DOM。您可以使用 refs 访问您想要的特定 DOM 元素。

var NewItem = React.createClass({
    componentDidMount: function () {
        this.refs.formTarget.appendChild(myFormDomElement);
    },

    render: function () {
        return React.DOM.div(null,
            React.DOM.h1(null, "New item"),
            React.DOM.div({ref: "formTarget"}));
    }
});

请注意,在 0.14 中,ref 是原始 DOM 元素。在此之前,ref 是一个 React 组件,您必须调用 React.findDOMNode(it) 来获取实际的 DOM 元素。

关于javascript - 如何将外部 DOM 附加到 React 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32849219/

相关文章:

javascript - jQuery 的 AJAX 请求不起作用

reactjs - 什么时候在 react 中调用 useEffect Hook 清理函数

javascript - JS .focus() 在片段中工作但不在文档中工作

javascript - PHP textarea 结合 select Change 和 .load() 函数

javascript - 验证发布的 ASP 页面上表单的用户输入

javascript - 使用play()时HTML Audio停止IOS音乐播放器

reactjs - 如何使用 Semantic 的 React Table 组件从表行单击获取数据

javascript - 如何从 Controller 返回对象列表并使用 JQuery(Spring MVC、ajax)显示它们

javascript - 在计时器上循环显示/隐藏 React 组件

reactjs - 使用 useMemo 在渲染期间更新 React Hooks 状态