Как показать изображения из массива в строке таблицы в реакции

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

У меня есть проект для загрузки данных из firebase в реагирующую таблицу, и это сделано. Отлично работает. Проблема в том, что из этой базы данных есть изображения, которые также необходимо отображать в таблице. Из первого изображения видно, как организованы данные в firebase. данные базы данных

И вот код для загрузки этих данных в реакцию:

class App extends Component {


constructor(props) {
    super(props);
    this.state = {
      vehicles: []
    };
  }

  componentWillMount() {
    this.getvehicles();
  }

  getvehicles() {
    let vehicles = [];

    firebase
      .database()
      .ref(`vehicles`)
      .once('value', snapshot => {
        snapshot.forEach(level1 => {
          level1.forEach(level2 => {
            const vehicle = level2.val();
            vehicle.pictures && vehicles.push(vehicle);
          });
        });
        this.setState({
          vehicles
        });
      });
  }

На втором рисунке видно, что данные загружаются из firebase Данные загружаются из Firebase

И код рендеринга здесь:

render() {
    const vehiclesColumns = [
      {
        columns: [
          {
            Header: 'Vehicle ID',
            id: 'vehicleID',
            accessor: d => d.vehicleID,
            filterMethod: (filter, row) =>
              row[filter.id].startsWith(filter.value)
          },
          {
            Header: 'Terminal',
            id: 'terminal',
            accessor: d => d.terminal,
            filterMethod: (filter, row) =>
              row[filter.id].startsWith(filter.value)
          },
          {
            Header: 'Time',
            id: 'timestamp',
            accessor: d => {
              return Moment(d.timestamp)
                .local()
                .format('DD-MMMM-YYYY', 'at', true);
            }
          },
          {
            Header: 'User',
            id: 'user',
            accessor: d => d.user,
            filterMethod: (filter, row) =>
              row[filter.id].startsWith(filter.value)
          }
        ]
      }
    ];

    return (
      <div style = {style}>
        <div>
          <ReactTable
            style = {{ marginLeft: '-80%', marginRight: '-80%' }}
            data = {this.state.vehicles}
            filterable
            defaultFilterMethod = {(filter, row) =>
              String(row[filter.id]) === filter.value
            }
            columns = {vehiclesColumns}
            SubComponent = {row => {
              return <div>PICTURES IN ROW</div>;
            }}
          />
        </div>
      </div>
    );
  }
}

Итак, мой вопрос: кто-нибудь может мне помочь или переписать код, массив «изображений», который вы можете видеть на втором снимке экрана, визуализировать в «строке» примера «реагировать-таблица»:

SubComponent = {row => {
                  return <div><img src = {remoteUri} key = {vehicle.picture} /></div>;
                }}

Как видно на последнем скриншоте, как быть и куда показывать "картинки" из Firebase. ДАННЫЕ РЕАКТИВНОЙ ТАБЛИЦЫ С ИЗОБРАЖЕНИЯМИ В РЯД

Кто-нибудь поможет с этим?

FiReFox 15.04.2019 09:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
1
2 176
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение уже найдено: Перед «рендерингом» есть метод «цепочка» для соединения всех картинок с одного автомобиля.

getvehicles() {
    firebase
      .database()
      .ref(`pictures`)
      .once('value', snapshot => {
        const data = snapshot.val();
        const vehicles = _.chain(data)
          .values()
          .groupBy('vehicleId')
          .map((rows, vehicleId) => ({
            vehicleId,
            pictures: _.map(rows, 'remoteUri')
          }))
          .value();

        console.info(vehicles);

        this.setState({ vehicles });
      });
  }

На "рендере"

    const storage = firebase.storage();

const storageRef = storage.ref();
<div>
                    {row.original.pictures.map(ref => (
                      <Async
                        promiseFn = {() => storageRef.child(ref).getDownloadURL()}
                      >
                        {({ isLoading, error, data }) => {
                          if (error) {
                            return 'FATALL ERROR';
                          }
                          if (isLoading) {
                            return 'Loading...';
                          }
                          if (data) {
                            return <img src = {data} alt = {data} key = {data} />;
                          }
                        }}
                      </Async>
                    ))}
                  </div>

С помощью этого кода я получаю изображения в строке «Подкомпонент» в таблице React.

Другие вопросы по теме