ReactJs: отображение списка изображений из массива URL-адресов

Итак, это моя первая неделя, когда я занимаюсь Javascript, и я пытаюсь создать настольную игру на ReactJs. Я генерирую доску и ее квадраты, используя массив, и квадраты отображают текст, который содержится в массиве с соответствующим индексом т.е., если array [0] = 'w', доска выглядит как это Однако я пытаюсь сделать так, чтобы на лицевой стороне квадрата вместо буквы появлялось изображение.

Я пробовал array [0] = {imgurl}, но безуспешно. Как мне этого добиться?

Это мой App.js

import React, { Component } from 'react';
import './App.css';
import player from './player.png'

class App extends Component {

  constructor(props) {
    super(props)
    this.state = {
      board: Array(Math.pow(2,2)).fill(''),
      sqr: {width:'50px',height:'50px'},
      brd: {width:'100px',height:'100px'}
    }
    this.state.board[0]='w'
  }

  render() {
    return (
      <div className = "app-container">
        <div style = {this.state.brd} className = "board" >

        {this.state.board.map((cell) => {
          return <div style = {this.state.sqr} className = "square">{cell}</div>;
        })}

        </div>

      </div>
    )
  }
}

export default App;

Это мой App.css

.board {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-left: 10%;

}

.square {
  box-sizing: border-box;
  border: 2px solid black;
  font-size: 2em;
  display: flex;
  justify-content: center;
  align-items: center;
}

Можете ли вы показать попытку, которую вы сделали с изображением?

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

Ответы 1

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

Я так понимаю, вы хотите установить player.png на ячейку, как на картинке с буквой «w»?

Вы можете использовать что-то вроде:

{this.state.board.map((cell, index) => {
    if (index === 0) {
          return <div
            style = {Object.assign({background: `url(${player})`}, this.state.sqr)}
            className = "square">
            {cell}
            </div>;
    }
})}

Если вы хотите динамически монтировать изображения, вы можете экспортировать стиль квадрата по умолчанию в файл .css и обрабатывать стили фонового изображения непосредственно в цикле .map гораздо более удобным способом без необходимости использования Object.assign.

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