我尝试从 api 获取我的产品,在本地开发(expo go)和 Android 模拟器上一切正常。我在物理设备上遇到问题。
//imports
export default function Products() {
const [products, setProducts] = useState<[] | Product[]>([]);
useEffect(() => {
req();
}, []);
const req = async () => {
const res = await fetch("http://MY_API/get-all-products");
const data = await res.json();
setProducts(data);
getData("products").then((stored) => {
if (stored !== data) {
storeData("products", data);
}
});
};
return (
<>
<Header title="PRODUCTS" />
<ScrollView style={styles.container}>
{products &&
products.map((product) => (
<TouchableOpacity
onPress={() =>
router.replace({
pathname: "/products/product/[name]" as `http${string}`,
params: { id: product.id || "karaman-cream" },
})
}
key={product.id}
style={styles.item}
>
<ImageBackground
source={{
uri: `http://MY_API/mobil/images/products/${product.id}/${product.image_paths[0]}`,
}}
style={styles.item}
resizeMode="cover"
>
<Text style={styles.title}>{product.name}</Text>
</ImageBackground>
</TouchableOpacity>
))}
</ScrollView>
</>
);
}
//styles
由于协议原因,我收到此错误。您需要安全连接(https)