React Native - будет ли изображение всегда преобразовываться в одно и то же целое число? - PullRequest
0 голосов
/ 05 июня 2018

В моем собственном родном приложении, которое использует криптовалюту, у меня есть глобальное состояние избыточности, называемое coinImageUrls со следующей структурой:

coinImageUrls = {
  BTC: 'https://coin-image-url/btc.png',
  ETH: 'https://coin-image-url/eth.png',
  ABC: 31,
}

Этот объект заполняется, когда я выполняю Image.prefetch для кэширования удаленных изображений,Если URL изображения действителен, я сохраню строку URL как есть.Однако, если prefetch не удастся из-за недопустимого URL-адреса изображения, я буду использовать локальное резервное изображение с require.Суть кода примерно такая: (очевидно, не исходный код, поскольку coinImageUrls в редуксе)

Image.prefetch(imageLink)
  .then(() => {
    coinImageUrls[coinSymbol] = imageLink
  })
  .catch(() => {
    coinImageUrls[coinSymbol] = require('../assets/fallback-image.png')
  })

Наконец, изображения загружаются путем проверки, является ли она строкой или целым числом.

typeof coinImageUrls[coinSymbol] === 'string'
  ? <Image source={{uri: coinImageUrls[coinSymbol]}} />
  : <Image source={coinImageUrls[coinSymbol]} />

Ключевым моментом здесь является то, что вся предварительная выборка будет происходить только ONCE для каждого символа монеты.Это означает, что в тот момент, когда монете ABC было присвоено значение 31 (преобразованное из require), оно никогда не изменится.

Итак, мой вопрос, изменится ли когда-либо число 31?Если это так, можно ли сделать так, чтобы require всегда преобразовывалось в одно и то же целое число?Это даже проблема в производственной среде?

...