Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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_Undefined_Fetch_Setstate - Fatal编程技术网

Javascript 获取后状态返回未定义

Javascript 获取后状态返回未定义,javascript,reactjs,undefined,fetch,setstate,Javascript,Reactjs,Undefined,Fetch,Setstate,我正在使用fetch将数据发布到本地api,但在尝试获取数据时,会出现类似这样的错误。在fetch中,我得到的结果非常好,但在这之后,尝试将其传递到如下状态: 这是我的国家({ 项目:result.items}) 但是项返回未定义的,不知道为什么 我的代码: 类应用程序扩展组件{ 建造师(道具){ 超级(道具); 此.state={ 项目:[], 错误:null, isLoaded:false }; this.setState=this.setState.bind(this); } compon

我正在使用fetch将数据发布到本地api,但在尝试获取数据时,会出现类似这样的错误。在fetch中,我得到的结果非常好,但在这之后,尝试将其传递到如下状态:

这是我的国家({ 项目:result.items})

但是返回未定义的,不知道为什么

我的代码:

类应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
项目:[],
错误:null,
isLoaded:false
};
this.setState=this.setState.bind(this);
}
componentDidMount(){
取回(“http://localhost:3000/items")
.then(res=>res.json())
。然后(结果=>{
控制台日志(结果);
这是我的国家({
项目:result.items,
isLoaded:正确
});
console.log(this.state.items)
},                       
(错误)=>{
这是我的国家({
isLoaded:是的,
错误
});
}
)
}
render(){
const{error,isLoaded,items}=this.state;
如果(错误){
返回错误:{Error.message};
}否则,如果(!已加载){
返回装载。。。;
}否则{
返回(
    保存的项目: { items&&items.map(item=>(
  • 项目:{item.name}{item.price}
  • )) }
); } } }
您可以执行以下任一操作:

this.setState({
    items: result.items || [],
     isLoaded: true
});

{
items&&items.map(item=>(
  • {item.name}{item.price}
  • )) }
    看起来像是
    结果。项
    未定义-在设置状态之前添加一个日志我做了,结果是它应该做的,但你是对的,虽然我面临类似的问题,但结果未定义。这是因为
    result.items
    为空。不幸的是,我不能告诉你为什么。请根据和更新您的问题
    this.setState({
        items: result.items || [],
         isLoaded: true
    });
    
    {
        items && items.map(item => (
            <li key={item.name}>
                {item.name} {item.price}
            </li>
        ))
    }