Javascript 如何添加<;脚本>;用reactjs标记到div id中
我试图将标记添加到react中,但componentDidMount总是在渲染之前运行。如何将脚本添加到中并一起运行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
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}
)
}
您将不需要任何子附加、脚本创建等。您的代码将更加整洁,它可以帮助解决您的问题