juh*_*uha 3 typescript react-native expo
我正在练习 React 原生打字稿。我从jsonplaceholer API获取数据并添加到我的组件状态。映射状态并尝试在我的手机上呈现后。但是我在终端上收到打字稿错误:property "title" does not exist on type 'never'.
这是我的应用组件
import React, { useState, useEffect } from "react";
import { StyleSheet, Text, View, ScrollView, Image } from "react-native";
export default function App() {
const [state, setstate] = useState([]);
useEffect(() => {
fetchData();
}, []);
const fetchData = async () => {
const response = await fetch("https://jsonplaceholder.typicode.com/photos");
const data = await response.json();
setstate(data);
};
return (
<ScrollView style={styles.body}>
<View style={styles.container}>
{state.map(list => {
return <Text>{list.title}</Text>; //
})}
</View>
</ScrollView>
);
}
const styles = StyleSheet.create({
body: {
padding: 150
},
container: {
flex: 1,
backgroundColor: "white",
alignItems: "center",
justifyContent: "center"
},
stretch: {
width: 50,
height: 200,
resizeMode: "stretch"
}
});
Run Code Online (Sandbox Code Playgroud)
您必须将状态定义为任何类型的数组:
const [state, setstate] = useState([] as any[]);
Run Code Online (Sandbox Code Playgroud)
默认情况下,TypeScript 将空数组定义为never[]. 这是一个始终为空的数组。TS的一个奇怪的事情。这个问题中的更多信息。
| 归档时间: |
|
| 查看次数: |
1262 次 |
| 最近记录: |