如何解决如何从“窗口”对象-React中检索数据?
我是ReactJS的超级新手。我试图将第三方脚本文件分配给我的Window对象,就像我的componentDidmount方法中的以下代码一样。
const script = document.createElement("script");
script.src = "www.xxx.com/src/data.js";
script.async = true;
document.body.appendChild(script);
console.log(window);
从上一个控制台日志中,我得到带有第三方脚本数据的全窗口对象。但是接下来,我尝试在上述代码之后的同一组件中将数据设置为我的状态,如下所示。
this.setState({
dataBook: window.databook,dataTopic: window.datatopic
})
,但状态分配为未定义。我也尝试使用头盔和脚本标签npm。我认为我做错了。如何从窗口对象中检索数据?谢谢 完整组件
import React from 'react';
import './App.css';
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
url:"https://example.com/src/customdata.js",dataBook: [],dataTopic: [],dataLesson: [],dataGloss: []
}
}
componentDidMount() {
const script = document.createElement("script");
script.src = this.state.url;
script.async = true;
document.body.appendChild(script);
console.log(window);
this.setState({
dataBook: window.databook,dataTopic: window.datatopic,dataLesson: window.datalesson,dataGloss: window.datagloss
})
}
render() {
return (
<div className="App">
<div>Book Titles</div>
{
window.databook.map((item)=>{
console.log(item)
})
}
<hr/>
</div>
);
}
}
export default App;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。