如何从API把一个图片导入react native?

cngwdvgl  于 2022-12-30  发布在  React
关注(0)|答案(1)|浏览(128)

我正在用React Native制作一个应用程序,我把F1赛车作为一个学校项目来展示,我从我的WordPress网站上的帖子中获取数据(标题、图片......)。我对这个问题很陌生,所以如果我的措辞有点复杂,我很抱歉。)
我正在使用postman查找我的数据,我找到了我想使用的图像:

"og_image": [
            {
                "width": 1920,
                "height": 1080,
                "url": "https://tibomertens.be/wp-content/uploads/2022/12/F1-75_JPG_SPONSOR_00004.jpg",
                "type": "image/jpeg"
            }
        ],

因此,在我的React原生代码中,我编写了以下代码来获取图像URL:

{item.id === 572 && (
                <Image
                  style={{ width: 50, height: 200 }}
                  source={{ uri: `${item.og_image[0].url}` }}
                />
              )}

但它会给出错误"[TypeError:undefined不是对象(计算"item. og_image [2]")]"。
完整代码:

const Cars = ({ navigation }) => {
  const [Cars, setCars] = useState([]);

  const getCars = async () => {
    try {
      const response = await fetch(
        "https://tibomertens.be/wp-json/wp/v2/posts?categories=8",
        {}
      );
      const json = await response.json();
      setCars(json);
      console.log(Cars);
      console.log("hey");
    } catch (error) {
      console.error(error);
    }
  };

  useEffect(() => {
    getCars();
  }, []);

  return (
    <View>
      <FlatList
        data={Cars}
        renderItem={({ item }) => (
          <View>
            <Text>
              {"\n"}
              {item.id === 572 && (
                <Image
                  style={{ width: 50, height: 200 }}
                  source={{ uri: `${item.og_image[0].url}` }}
                />
              )}
              <Text>
                {item.title.rendered} {"\n"}{" "}
              </Text>
              <Text>{item.rttpg_excerpt}</Text>
            </Text>
            <Pressable
              onPress={() =>
                navigation.navigate("Details", {
                  itemTile: item.title.rendered,
                })
              }
            >
              <Text>bekijk product</Text>
            </Pressable>
          </View>
        )}
      ></FlatList>
    </View>
  );
};

谢谢你的阅读,希望有人能帮助我!

bxgwgixi

bxgwgixi1#

已更新答案。更改此代码:

{item.id === 572 && (
    <Image
       style={{ width: 50, height: 200 }}
       source={{ uri: `${item.og_image[0].url}` }}
         />
   )}

致:

{item.yoast_head_json?.og_image !== undefined && <Image
  style={{ width: 50, height: 200 }}
  source={{ uri: `${item.yoast_head_json.og_image[0].url}` }}
/>
}

相关问题