Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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 反应:获取状态变量是未定义的错误_Javascript_Reactjs_React Fullstack - Fatal编程技术网

Javascript 反应:获取状态变量是未定义的错误

Javascript 反应:获取状态变量是未定义的错误,javascript,reactjs,react-fullstack,Javascript,Reactjs,React Fullstack,这是我的代码: state={ data:{}, place:'' }; handlePlaceChange = async (place) => { const fetchedData = await fetchData(place); this.setState({data:fetchedData, place:place}); console.log(data); } 我正确地获取了fetchedData,当我记录它时,我得到了从另一个文件传递的预期

这是我的代码:

state={
   data:{},
   place:''
};

handlePlaceChange = async (place) => {
   const fetchedData = await fetchData(place);
   this.setState({data:fetchedData, place:place});
   console.log(data);
}
我正确地获取了fetchedData,当我记录它时,我得到了从另一个文件传递的预期对象。但是,当我尝试控制台日志时,当我调用handlePlaceChange函数时会出现此错误

未处理的拒绝引用错误:未定义数据


但是数据是定义的,它是一个状态变量

您应该在获取后提取json数据:

const fetchedData = await fetchData(place)
const data = await fetchedData.json()
this.setState({data, place:place})
啊,数据是未定义的,因为您只是记录未定义的变量数据,您应该记录到状态数据:this.state.data


但是,您将获得初始状态数据,因为它是异步的。

将数据替换为console.log中的this.state.data

console.log(this.state.data)
此外,您的状态数据不会立即更新。因此,控制台日志将显示其初始值


若要检查您的状态是否已获取所需的数据,请将此控制台置于render函数中

请编辑并重新格式化您的代码您的数据未在任何地方定义。。。这就是为什么…是的,这很有效!后来我在我的组件中渲染了这一天,它渲染得很好。。。我的控制台日志记录方法错误,因为我只记录数据,而不是这个.state.data。非常感谢你的帮助!非常感谢……是的,这很有效!!:非常感谢你的帮助!非常感谢!
console.log(this.state.data)