【发布时间】:2020-08-04 14:54:29
【问题描述】:
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>
);
}
如何在 typescript 中呈现对象数组中的数据?
我可以在调用 console.log(item) 时看到数据,控制台显示一个对象数组,其中包含所有数据
我试过了
<ul>
{items.map(item => (
<li key={item.value}>
{item.label}
</li>
))}
</ul>
数据库由对象数组组成 - {label: "string", value: "string", boolean: true}
当我尝试 item.label 或 item.value 时,我得到“在类型 'never' 上不存在属性 'label'。”
【问题讨论】:
-
Hi Tuan,你能把
console.log(items)贴在这里吗? -
[{..}{...} .... {...}] 0: {label: "some string", value: "some string", boolean: true} 。 . 9: {label: "some string", value: "some string", boolean: true}
-
我解决了,我只要加上useState
([])
标签: reactjs typescript api