Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
Reactjs 从api呈现数据 const[error,setError]=useState(null); const[isLoaded,setIsLoaded]=useState(false); const[items,setItems]=useState([]); useffect(()=>{ 获取(“api url”) .then(res=>res.json()) .那么( (结果)=>{ setIsLoaded(真); 设置项(结果项); }, (错误)=>{ setIsLoaded(真); 设置错误(错误); } ) }, []) 如果(错误){ 返回错误:{Error} }否则,如果(!已加载){ 返回装载。。。; }否则{ 返回( {items.map(item=>( console.log(项目) ))} ); }_Reactjs_Typescript_Api - Fatal编程技术网

Reactjs 从api呈现数据 const[error,setError]=useState(null); const[isLoaded,setIsLoaded]=useState(false); const[items,setItems]=useState([]); useffect(()=>{ 获取(“api url”) .then(res=>res.json()) .那么( (结果)=>{ setIsLoaded(真); 设置项(结果项); }, (错误)=>{ setIsLoaded(真); 设置错误(错误); } ) }, []) 如果(错误){ 返回错误:{Error} }否则,如果(!已加载){ 返回装载。。。; }否则{ 返回( {items.map(item=>( console.log(项目) ))} ); }

Reactjs 从api呈现数据 const[error,setError]=useState(null); const[isLoaded,setIsLoaded]=useState(false); const[items,setItems]=useState([]); useffect(()=>{ 获取(“api url”) .then(res=>res.json()) .那么( (结果)=>{ setIsLoaded(真); 设置项(结果项); }, (错误)=>{ setIsLoaded(真); 设置错误(错误); } ) }, []) 如果(错误){ 返回错误:{Error} }否则,如果(!已加载){ 返回装载。。。; }否则{ 返回( {items.map(item=>( console.log(项目) ))} ); },reactjs,typescript,api,Reactjs,Typescript,Api,如何在typescript中呈现对象数组中的数据? 调用console.log(item)时可以看到数据,console显示一个包含所有数据的对象数组 我试过了 const [error, setError] = useState(null); const [isLoaded, setIsLoaded] = useState(false); const [items, setItems] = useState([]); useEffect(() => { fetch

如何在typescript中呈现对象数组中的数据?
调用console.log(item)时可以看到数据,console显示一个包含所有数据的对象数组

我试过了

  const [error, setError] = useState(null);
  const [isLoaded, setIsLoaded] = useState(false);
  const [items, setItems] = useState([]);
  useEffect(() => {
    fetch("api-url")
      .then(res => res.json())
      .then(
        (result) => {
          setIsLoaded(true);
          setItems(result.items);
        },
        (error) => {
          setIsLoaded(true);
          setError(error);
        }
      )
  }, [])
if (error) {
  return <div>Error: {error}</div>
} else if (!isLoaded) {
  return <div>Loading...</div>;
} else {
  return (
      <ul>
        {items.map(item => (
          console.log(item)
        ))}
      </ul>
    );
  }
    {items.map(item=>(
  • {item.label}
  • ))}
数据库由对象数组组成{label:“string”,value:“string”,boolean:true}
当我尝试item.label或item.value时,我得到“属性'label'在类型'never'上不存在”。

尝试将您的“item”指定为“any”类型,以防止TS将其视为“never”

    {items.map((item:item)=>(
  • {item.label}
  • ))}
编辑:添加了自定义界面的示例,而不是使用“any”

接口项{
值:字符串;
标签:字符串;
someBOolean:boolean;
}
尝试为您的“项目”指定“任意”类型,以防止TS将其视为“从不”

    {items.map((item:item)=>(
  • {item.label}
  • ))}
编辑:添加了自定义界面的示例,而不是使用“any”

接口项{
值:字符串;
标签:字符串;
someBOolean:boolean;
}

您可以在
useState
中定义期望值的类型,如下所示:

const[items,setItems]=useState([])


其中,
对象
可以是项目的实际接口。

您可以在
useState
中定义期望值的类型,如下所示:

const[items,setItems]=useState([])


其中,
Object
可能是您的项的实际接口。

Hi Tuan,您能将
console.log(items)
粘贴到这里吗?[{..}{..}{..}{..}{..}]0:{label:“some string”,value:“some string”,boolean:true}。9:{label:“some string”,value:“some string”,boolean:true}我解决了它,我只需要添加useState([])Hi Tuan,你能把
console.log(items)
粘贴到这里吗?[{……}{……}{……}]0:{label:“some string”,value:“some string”,boolean:true}。9:{label:“some string”,value:“some string”,boolean:true}我解决了它,我只需要添加useState([])这样的变通方法,这意味着您只是在与Typescript作斗争,而不是按照预期的方式使用它。如果您知道
项目
应该具有
标签
属性,那么请创建一个
项目
类型,而不是使用
任何
。我已经添加了它,它可以正常工作。如何指定项目的类型?对象具有标签、值和布尔类型。谢谢@Oli,这是一个公平的观点。我已经更新了答案,为该项目提供了一个自定义界面。有关类型/接口以及它们之间的区别的更多信息,请看这里:这样的变通方法意味着您只是在与Typescript作斗争,而不是按照预期的方式使用它。如果您知道
项目
应该具有
标签
属性,那么请创建一个
项目
类型,而不是使用
任何
。我已经添加了它,它可以正常工作。如何指定项目的类型?对象具有标签、值和布尔类型。谢谢@Oli,这是一个公平的观点。我已经更新了答案,为该项目提供了一个自定义界面。有关类型/接口及其差异的更多信息,请查看:
 <ul>
     {items.map(item => (
       <li key={item.value}>
         {item.label}
       </li>
     ))}
 </ul>