ImageBackground не работает, когда я вызываю источник из состояния - PullRequest
0 голосов
/ 02 апреля 2019

ImageBackground не показывает изображение, когда я вызывал источник из состояния.

Я пытался использовать условное выражение, как при первой прозрачности, но не работал снова.

state = {
    color1: "../images/yellow-orb.png",
    color2: "../images/yellow-orb.png",
}
<TouchableOpacity onPress={() => this.questSelect(1)}>
          {this.state.color1 ? (
            <ImageBackground
              source={{ uri: this.state.color1 }}
              style={styles.icon2}
            >
              <Text>1</Text>
            </ImageBackground>
          ) : (
            null
          )}
</TouchableOpacity>
<TouchableOpacity onPress={() => this.questSelect(2)}>
          <ImageBackground
            source={{ uri: this.state.color2 }}
            style={styles.icon2}
          >
            <Text>2</Text>
          </ImageBackground>
</TouchableOpacity>

В эмулятореЯ вижу тексты типа 1 2 3 .. но изображений нет.

1 Ответ

0 голосов
/ 02 апреля 2019

Вам нужно добавить require() для загрузки из источника.

Например:

 <ImageBackground
              source={require("../images/yellow-orb.png")}
              style={styles.icon2}
            >
              <Text>1</Text>
 </ImageBackground>

OR

обновить свое состояние, как это,

this.state = {
    color1: require("../images/yellow-orb.png"),
    color2: require("../images/yellow-orb.png"),
}

и использовать значение состояния напрямую,

 <ImageBackground
              source={this.state.color1}
              style={styles.icon2}
            >

пожалуйста, проверьте

...