Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何添加<;脚本>;用reactjs标记到div id中_Javascript_Reactjs - Fatal编程技术网

Javascript 如何添加<;脚本>;用reactjs标记到div id中

Javascript 如何添加<;脚本>;用reactjs标记到div id中,javascript,reactjs,Javascript,Reactjs,我试图将标记添加到react中,但componentDidMount总是在渲染之前运行。如何将脚本添加到中并一起运行 componentDidMount () { function loadScript() { var script= document.createElement('script'); script.type= 'text/javascript'; script.textContent = 'var Module = { T

我试图将标记添加到react中,但componentDidMount总是在渲染之前运行。如何将脚本添加到中并一起运行

componentDidMount () {
    function loadScript() {
        var script= document.createElement('script');
        script.type= 'text/javascript';
        script.textContent = 'var Module = { TOTAL_MEMORY: 536870912, errorhandler: null, compatibilitycheck: null, dataUrl: "Release/Arctopia_Path_Monopoly_v1.1.1GL.data", codeUrl: "Release/Arctopia_Path_Monopoly_v1.1.1GL.js",memUrl: "Release/Arctopia_Path_Monopoly_v1.1.1GL.mem",};';
        document.getElementById("play").appendChild(script);

        var script0= document.createElement('script');
        script0.type= 'text/javascript';
        script0.src= 'TemplateData/UnityProgress.js';
        document.getElementById("play").appendChild(script0);

        var script2= document.createElement('script');
        script2.src= 'Release/UnityLoader.js';
        document.getElementById("play").appendChild(script2);
    }
    loadScript();
    this.setState({ update: true })
    console.log("insert script")
},

render () {
    return (
        <div id="wrapperOthers">
            <div className="container text-xs-center" id="play">
                <h4>{ this.data.colCourse.name }</h4>
                <canvas id="canvas" oncontextmenu="event.preventDefault()" height="600px" width="960px"></canvas>               
            </div>
        </div>
    )
}
componentDidMount(){
函数loadScript(){
var script=document.createElement('script');
script.type='text/javascript';
script.textContent='var Module={TOTAL_MEMORY:536870912,errorhandler:null,compatibilitycheck:null,dataUrl:“Release/Arctopia_Path_pology_v1.1.1GL.data”,codeUrl:“Release/Arctopia_Path_pology_v1.1.1GL.mem”,};
document.getElementById(“play”).appendChild(脚本);
var script0=document.createElement('script');
script0.type='text/javascript';
src='TemplateData/UnityProgress.js';
document.getElementById(“play”).appendChild(script0);
var script2=document.createElement('script');
script2.src='Release/UnityLoader.js';
document.getElementById(“play”).appendChild(script2);
}
loadScript();
this.setState({update:true})
log(“插入脚本”)
},
渲染(){
返回(
{this.data.colCourse.name}
)
}

我建议将此脚本创建为单独的js文件并导入/需要它(因为您使用的是JSX,我假设您使用的是ES6,所以我将在ES6中编写示例)。然后,您只能保留
this.setState({update:true})
并在div中的条件{this.state.update?importedScript:null}下添加

整个代码可能如下所示:

/*At the very top of your file*/
import importedScript from '../path to the file'

componentDidMount () {
    this.setState({ update: true })
    console.log("insert script")
},

render () {
    return (
        <div id="wrapperOthers">
            <div className="container text-xs-center" id="play">
                { this.state.update ? importedScript: null }
                <h4>{ this.data.colCourse.name }</h4>
                <canvas id="canvas" oncontextmenu="event.preventDefault()" height="600px" width="960px"></canvas>               
            </div>
        </div>
    )
}
/*位于文件的最顶端*/
从“../path”导入导入导入的脚本到文件
组件安装(){
this.setState({update:true})
log(“插入脚本”)
},
渲染(){
返回(
{this.state.update?importedScript:null}
{this.data.colCourse.name}
)
}
您将不需要任何子附加、脚本创建等。您的代码将更加整洁,它可以帮助解决您的问题