изображение не отображается, когда я вставляю изображение в файл jsx

#javascript #reactjs #meteor #jsx

#javascript #reactjs #метеор #jsx

Вопрос:

Я пытаюсь вставить изображение в файл JSX, и я получаю это как результат ->

Изображение выходных данных, которые я получаю

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

     import React from "react";

import { Centered } from "meteor/empirica:core";

export default class InstructionStepOne extends React.Component {
  render() {
const { hasPrev, hasNext, onNext, onPrev, game } = this.props;

//const imagePath = "/my-experiment/img/table_image.png";
//const imagePath = "table_image.png";
const imagePath = "/meteor-empirica-core-master/my-experiment/client/intro/jpg.jpg";

return (
  <Centered>
    <div className="instructions">
      <h1> Instructions 1 </h1>

          <p><b> *** PLEASE NOTE THAT YOU WILL BE QUIZZED ABOUT THE GAME BEFORE IT STARTS *** </b></p>
          <p>Each game consists of a sequence of X rounds. Each round, you have a choice between two different actions (Choice 1 and Choice 2). You will have one minute to make your decision. After both you and your partner make a decision, you will each receive a certain number of points. This table shows how many points you and your partner will earn based on your choices:</p>

          <p>In each cell, the first number is how many points you will receive, and the second how many points your partner will receive. In other words:</p>
          <ul> 
          <li> If both you and your partner select Choice 1, you each earn 5 points. </li>
          <li> If you select Choice 1 and your partner selects Choice 2, you earn 1 point and your partner earns 7 points. </li>
          <li> If you select Choice 2 and your partner selects Choice 1, you earn 7 points and your partner earns 1 point. </li>
          <li> If both you and your partner select Choice 2, you each earn 3 points. </li>
          </ul> 

          <div className="task-image">
            <img src={imagePath}/>
          </div>

        <p>
        <button type="button" onClick={onPrev} disabled={!hasPrev}>
          Previous
        </button>
        <button type="button" onClick={onNext} disabled={!hasNext}>
          Next
        </button>
         </p>
    </div>
  </Centered>
);
  

Комментарии:

1. У вас должно быть правильное отображение вашей папки ресурсов в конфигурации webpack. В противном случае после компиляции JSX . Путь будет другим.

2. Вы пытались поместить изображение в свою папку public / assets и правильно отобразить его?

3. @user573014, если ответ на этот вопрос помог вам решить вашу проблему, пожалуйста, отметьте его как ответ . Так что это поможет другим пользователям, которые сталкиваются с той же проблемой.

Ответ №1:

Способ 1

Лучший способ импортировать файл изображения JSX index.js — это иметь файл в папке изображения и экспортировать файлы в качестве переменных экспорта.

Пример: рассмотрим assets каталог, в котором хранятся изображения, тогда index.js будет выглядеть следующим образом.

 export const myimage = require('./meteor-empirica-core-master/my-experiment/client/intro/jpg.jpg');
export const newimage = require('./meteor-empirica-core-master/my-experiment/client/intro/jpg.jpg');
.
.
.
Other images
  

И вы импортируете его в любой компонент следующим образом

 import { myimage, newimage } from "../assets";
  

Я обнаружил, что это более чистый подход к загрузке изображений. Я надеюсь, что это поможет и в вашем случае.

Способ 2

Вы можете напрямую импортировать изображение component . Но, когда у вас будет больше изображений, компонент будет выглядеть очень плохо.

 const imagePath = require('./meteor-empirica-core-master/my-experiment/client/intro/jpg.jpg');
  

Примечание: вы должны следовать своей структуре каталогов. В примере, ../assets учитывая, что ваш component находится непосредственно в components каталоге или в любом каталоге относительно assets .