首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ReactJS与库的getElementById集成

使用ReactJS与库的getElementById集成
EN

Stack Overflow用户
提问于 2016-01-04 17:01:01
回答 1查看 236关注 0票数 4

使用需要直接访问DOM的库(例如document.getElementById())呈现组件的最佳方法是什么?目前,由于setTimeout,我得到了一些有用的东西:

代码语言:javascript
复制
class MyComponent extends React.Component {
    render(){
        setTimeout(function(){
            myCoolGraphLibrary.createChart({
                container : "myChartContainer",
                series : [...],
                ...
            });    
        },1000);
        return (<div id="myChartContainer"></div>);
    }
}

没有setTimeout,容器在DOM中还不可用,因此对createChart的调用失败。

是否有更好的设计模式来实现这一点?

EN

Stack Overflow用户

回答已采纳

发布于 2016-01-04 17:02:40

使用生命周期方法。https://facebook.github.io/react/docs/component-specs.html

特别是,您需要使用componentDidMount来运行依赖于现有DOM元素的任何代码。如果要添加事件侦听器,请确保在componentWillUnmount中删除它们

编辑:对于您的评论,您的代码如下所示:

代码语言:javascript
复制
class MyComponent extends React.Component {
    componentDidMount() {
        myCoolGraphLibrary.createChart({
            container : "myChartContainer",
            series : [...],
            ...
        });
    }
    render() {
        return (<div id="myChartContainer"></div>);
    }
}
票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34596088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档