首页 > 解决方案 > 提供给`Image`的无效道具`source`” React Native

问题描述

我可以在 React Native 中获得帮助吗?
编译器总是抛出这个错误:
“失败的道具类型:source提供给无效的道具Image
dec 是来自 api 的字符串。
请帮忙!
我厌倦了这个错误。

 <Image
                resizeMode="stretch"
                style={styles.tempImg}
                source={
                  dec == "sunny"
                    ? require("./assets/sunny.png")
                    : dec == "Partly cloudy"
                    ? require("./assets/partlycloudy.png")
                    : dec == "Rain"
                    ? require("./assets/rain.png")
                    : dec == "Light Snow"
                    ? require("./assets/snowlight.png")
                    : dec == "Overcast"
                    ? require("./assets/overcast.png")
                    : dec == "Clear"
                    ? require("./assets/clear.png")
                    : dec == "Heavy snow"
                    ? require("./assets/heavysnow.png")
                    : dec == "Freezing Unknown Precipitation"
                    ? require("./assets/freezingrain.png")
                    : dec == "Cloudy"
                    ? require("./assets/cloudy.png")
                    : ""
                }
              />

标签: reactjsreact-native

解决方案


试试下面的代码:

<Image
    resizeMode="stretch"
    style={styles.tempImg}
    source={
        dec == "sunny"
         ? require("./assets/sunny.png")
         : dec == "Partly cloudy"
           ? require("./assets/partlycloudy.png")
           : dec == "Rain"
             ? require("./assets/rain.png")
             : dec == "Light Snow"
                ? require("./assets/snowlight.png")
                : dec == "Overcast"
                  ? require("./assets/overcast.png")
                  : dec == "Clear"
                    ? require("./assets/clear.png")
                    : dec == "Heavy snow"
                       ? require("./assets/heavysnow.png")
                       : dec == "Freezing Unknown Precipitation"
                         ? require("./assets/freezingrain.png")
                         : dec == "Cloudy"
                           ? require("./assets/cloudy.png")
                           : { uri: "" }
            }
          />

在最后一个条件处添加默认源,否则放置 { uri: "" }

因为黑色来源可能会产生问题,这就是您遇到错误的原因。


推荐阅读