Reactjs 如何从'window'对象检索数据-React?

Reactjs 如何从'window'对象检索数据-React?,reactjs,state,window-object,Reactjs,State,Window Object,我是超级新手。我正在尝试将第三方脚本文件分配给我的窗口对象,如下面componentDidmount方法中的代码所示 const script = document.createElement("script"); script.src = "www.xxx.com/src/data.js"; script.async = true; document.body.appendChild(scr

我是超级新手。我正在尝试将第三方脚本文件分配给我的窗口对象,如下面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;

从“React”导入React;
导入“/App.css”;
类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
url:“https://example.com/src/customdata.js",
数据本:[],
数据主题:[],
数据课程:[],
dataGloss:[]
}
}
componentDidMount(){
常量脚本=document.createElement(“脚本”);
script.src=this.state.url;
script.async=true;
document.body.appendChild(脚本);
控制台日志(窗口);
这是我的国家({
dataBook:window.dataBook,
dataTopic:window.dataTopic,
dataLesson:window.dataLesson,
dataGloss:window.dataGloss
})
}
render(){
返回(
书名
{
window.databook.map((项)=>{
console.log(项目)
})
}

); } } 导出默认应用程序;
请显示整个组件的代码。请详细说明在正文中添加脚本标记和设置状态的顺序?@SagiRika I posted full component.@VishalSharma I posted full component。不确定为什么要使用脚本标记获取数据,然后将其添加到窗口中以及国家。您应该使用JS fetch获取数据,然后将其设置为状态。现在我觉得,脚本src没有获取数据和设置状态的语句,这导致了问题的发生。