Производительность require при использовании в источнике компонента изображения

Я новичок, чтобы реагировать родной и у меня есть некоторые проблемы с компонентом изображения реакции Я прочитал документацию и искал несколько статей и вопросов, задаваемых по переполнению стека. Мне пришла в голову мысль, что src компонента Image может принимать строку (путь из локального или URL-адрес), или мы можем использовать require со строкой в ​​качестве периметра для загрузки изображения. Проект, над которым я работаю, содержит более 50 изображений, и те, которые нужно визуализировать, определяются во время выполнения. Раньше я планировал использовать переменные, которые требуют периметра для динамической загрузки изображений, но в ходе исследований мне стало известно, что это невозможно сделать, и у реагировать native нет планов по предоставлению такой функции.

Я пришел с идеей создать объект, содержащий требование в качестве значения.

export const subCategories = {
  'protection':[
     [
      {
        imageUrl: require('../imag`enter code here`es/trees.png'),
        title: 'Protection',
        value: 'p_1'
      },
      {
        imageUrl: require('../images/eco-tag.png'),
        title: "From Enemy",
        value: 'p_2'

      },
      {...

   'daily':[
     [
      {
        imageUrl: require('../images/trees.png'),
        title: 'Morning',
        value: 'd_1'
      },
      {
        imageUrl: require('../images/eco-tag.png'),
        title: "Evening",
        value: 'd_2'

      },
      {...

И решить, какой объект выбрать, основываясь на периметре навигации, переданном компоненту.

this.state = {
            data: subCategories[this.props.navigation.state.params.value]
    ...

И у меня был успех с этим. Но меня беспокоит производительность приложений, так как я не обладаю полным знанием и не знаю, как ведет себя это утверждение

imageUrl: require('../images/eco-tag.png')

Будет ли он загружать все изображения в память и отображать одно, выделенное для источника компонента Image. Или загрузит изображение во время рендеринга?

<Image source={ this.props.imageUrl } style = { styles.image }  />

Если вы объясните мне это самостоятельно, пожалуйста, сделайте это. И если у вас есть хорошая статья или вы пропустили какую-либо часть документации. пожалуйста, перенаправьте меня к нему.

PS: я экспортирую данные в файл JS и импортирую их при перенаправлении на экран. Я также хотел бы знать, если это правильный путь.

1 ответ

Для времени рендеринга попробуйте использовать функцию:

       {
    imageUrl: () => require('../trees.png'),
    title: 'Protection',
    value: 'p_1'
  }

и в компоненте:

      <Image source={ this.props.imageUrl() } style = { styles.image }  />
Другие вопросы по тегам