Reactjs 在渲染之前获取多个图像源

Reactjs 在渲染之前获取多个图像源,reactjs,react-native,Reactjs,React Native,我想在我的标记上显示图像,但它只在我使用标记的图标属性时起作用。我需要使用子视图来管理样式。当我使用图标属性时,视图图像会出现(因此我在地图上有两个图像),但在注释中时不会显示 这是我获取数据和更新状态的方法 componentDidMount(){ getmarkers().then(data => { let test = [] data.forEach(element => { test.push( { lat

我想在我的标记上显示图像,但它只在我使用标记的图标属性时起作用。我需要使用子视图来管理样式。当我使用图标属性时,视图图像会出现(因此我在地图上有两个图像),但在注释中时不会显示

这是我获取数据和更新状态的方法

componentDidMount(){
  getmarkers().then(data => {
    let test = []
    data.forEach(element => {
      test.push(
        {
          latlng:
          {
            latitude: JSON.parse(element.latitude),
            longitude: JSON.parse(element.longitude)
          },
          name: JSON.parse(element.images)[0],
          id: element.id,
          image: JSON.parse(element.images)[0]
        }
      )
    });

    this.setState({ markers: test, loaded: true })

  })
}
}

这是我的看法

            {this.state.markers.map((marker, i) => (
          <Marker
            key={i}
            coordinate={marker.latlng}
            title={marker.name}
            description={marker.name}
            tracksViewChanges={false}
          // icon={{ uri: 'https://www.testeed.com/uploads/minifiedplaces/' + marker.image}}
          >

            <View>
              <Image source={{ uri: 'https://www.testeed.com/uploads/minifiedplaces/' + marker.image }} style={{ width: 40, height: 40, borderRadius: 6 }} />
            </View>

          </Marker>
        ))}
{this.state.markers.map((marker,i)=>(
))}
const customMarkerImage=require(“../../../customMarkerImage.png”);

this.forceUpdate()}>
可能是关于这个问题:

const customMarkerImage=require(“../../../customMarkerImage.png”);

this.forceUpdate()}>

可能是关于这个问题:

这个问题来自Trackviewchange。如果将此值设置为false。应用程序滞后。然后,如果将该值设置为false,则应用程序不会在首次加载时加载图像


因此,在执行fetch/foreach后,您必须将init trackview更改为True并创建promise,如果它不起作用,您可以执行setimeout或setinterval将trackview更改的值更改为false,以显示图像更改并获得更好的平滑用户体验。

问题来自trackview更改。如果将此值设置为false。应用程序滞后。然后,如果将该值设置为false,则应用程序不会在首次加载时加载图像


因此,在执行fetch/foreach后,您必须将init trackview更改为True并创建promise,如果它不起作用,您可以执行setimeout或setinterval将Trackviewchange的值更改为false,以显示图像更改并获得更好的平滑用户体验。

我在1周后终于发现了错误。。问题来自Trackviewchange。如果将此值设置为false。应用程序滞后。然后,如果将该值设置为false,则应用程序不会在首次加载时加载图像。因此,在加载内容时,必须先将init trackview更改为True,然后再更改为false,以显示图像的更改并获得更好的平滑用户体验。今晚我将使用TrackViewChange尝试您的解决方案。请分享您的问题答案并接受。因此,可能有相同问题的人会陷入这个问题,并找到答案。1周后,我终于找到了错误。。问题来自Trackviewchange。如果将此值设置为false。应用程序滞后。然后,如果将该值设置为false,则应用程序不会在首次加载时加载图像。因此,在加载内容时,必须先将init trackview更改为True,然后再更改为false,以显示图像的更改并获得更好的平滑用户体验。今晚我将使用TrackViewChange尝试您的解决方案。请分享您的问题答案并接受。因此,可能有相同问题的人会陷入这个问题并找到答案。
<MapView.Marker>
  <View >
    <Image source={customMarkerImage} onLoad={() => this.forceUpdate()}>
    </Image>
  </View>
</MapView.Marker>