Я получаю неизвестное количество изображений, я хочу создать функцию, которая отображает массив изображений, и в зависимости от случая переключателя она определяет отображаемое изображение.

Я пытался вставить функцию карты, содержащую случай, внутри переключателя, но я получаю сообщение об ошибке, говорящее, что мне нужен случай

switch(this.state.currentImage){
   user.photos.map((img, index) => {
        return (
                <Image 
                style={[styles.photo, {zIndex: 5, flexDirection: "row"}]} 
                source={{ uri: img }}/>
               )
        }
}
-3
j_velaz 29 Окт 2019 в 16:42
1
Непонятно, как переключатель работает с тем, что предусмотрено. Где находится case
 – 
epascarello
29 Окт 2019 в 16:45

1 ответ

Вы не предоставили достаточно контекста, чтобы дать вам абсолютный ответ. И я не думаю, что вы понимаете, как работает переключатель. Переключатель проверяет, совпадают ли условия в случаях с переключателем in.

switch ('Test') {
  case 'Test':
   console.log('This will be logged');
   break;
  case 'Wrongtest':
   console.log('This will not');
   break;
}

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

let allImages = [img1, img2, img3, img4 ...];
let imagesToShow = [];
function parseImages(){
allImages.forEach(image => {
  if (image.importantVariable){
    imagesToShow.push(image)
   }
 })
}

Оператор if проверяет, является ли «важная» вещь на изображении такой, какой вы хотите ее видеть. Поскольку вы не указали, что является решающим фактором, я не знаю, что бы вы добавили в оператор if. Затем вы можете использовать изображения в массиве imagesToShow.

0
Sebastian Sundin 29 Окт 2019 в 17:34