【发布时间】:2022-01-03 14:53:41
【问题描述】:
我已经构建了自己的 API,以便能够在我的网站和我的移动应用程序之间共享我的数据库(以及它的数据)。 由于我们无法真正将真实图片存储在数据库中,因此我将本地相对路径存储在网站和应用程序文件夹中。这就是它的样子:
(我希望网站和应用程序的项目结构都只需要一个字段,但这不是今天的主题)
这就是我从 API 调用数据的方式:
const [isLoading, setLoading] = useState(true);
const [data, setData] = useState([]);
const getAlbumsFromApi = async () => {
try {
const response = await fetch('https://mywebsite.com/api/album');
const json = await response.json();
setData(json);
} catch (error) {
console.error(error);
} finally {
setLoading(false);
}
}
useEffect(() => { getAlbumsFromApi(); }, []);
这是我的返回码:
<View contentContainerStyle={styles.scrollview}>
<Text style={styles.titre_accueil}>
Communauté
</Text>
{isLoading ? <ActivityIndicator/> : (
<FlatList
style={styles.liste_albums}
data={data}
keyExtractor={({ id_album }, index) => id_album}
renderItem={({ item }) => (
<View style={styles.element_liste_album}>
<Image
style={styles.album}
source={{ uri : item.urlapp }}
/>
<Text style={{ color: 'red' }}> {item.urlapp} </Text>
</View>
)}
/>
)}
</View>
在这里,您可以看到证明您从 API 获取绝对数据的效果如何:
问题是 Text 确实有效,所以我知道我正确地获取了我的数据,但有些东西告诉我 React Native Image 的源 URI 东西不理解我传递给它的数据,因为文本之间的空格是假定的成为我的物品。当我使用 require 作为源创建标签时,使用这个确切的数据字符串,它运行良好并显示图像,但我不想将静态字符串带入我的标签,它必须来自 API。
所以我不知道发生了什么,某事告诉我传递到源道具的字符串类型不能被 URI 读取。是这样吗 ?如果是,为什么以及如何解决?
如果您一直读到这里,非常感谢,我很抱歉这个非常长的主题,如果我知道如何格式化,可以更好地格式化。如果您对那里发生的事情有所了解,非常感谢。
【问题讨论】:
标签: reactjs react-native