it-swarm.com.ru

Доступ к реквизитам внутри кавычек в React JSX

В JSX, как вы ссылаетесь на значение из props внутри значения атрибута в кавычках?

Например:

<img className="image" src="images/{this.props.image}" />

В результате получается HTML-вывод:

<img class="image" src="images/{this.props.image}">
258
cantera

React (или JSX) не поддерживает интерполяцию переменных внутри значения атрибута, но вы можете поместить любое выражение JS в фигурные скобки в качестве полного значения атрибута, так что это работает:

<img className="image" src={"images/" + this.props.image} />
417
Sophie Alpert

Если вы хотите использовать литералы шаблона es6, вам также нужны фигурные скобки:

<img className="image" src={`images/${this.props.image}`} />
205
Cristi

Если вы используете JSX с Harmony, вы можете сделать это:

<img className="image" src={`images/${this.props.image}`} />

Здесь вы пишете значение src как выражение.

45
user3089094

Вместо добавления переменных и строк вы можете использовать строки шаблона ES6! Вот пример:

<img className="image" src={`images/${this.props.image}`} />

Как и для всех других компонентов JavaScript внутри JSX, используйте строки шаблона внутри фигурных скобок. Чтобы «ввести» переменную, используйте знак доллара, а затем фигурные скобки, содержащие переменную, которую вы хотите ввести. Например:

{`string ${variable} another string`}
7
Saahil

Для этого рекомендуется добавить метод получения: 

getImageURI() {
  return "images/" + this.props.image;
}

<img className="image" src={this.getImageURI()} />

Затем, если позже у вас будет больше логики, вы сможете плавно поддерживать код.

5
Abdennour TOUMI

Для людей, которые ищут ответы с функцией «map» и динамическими данными, вот рабочий пример. 

<img src={"http://examole.com/randomview/images" + each_actor['logo']} />

Это дает URL как " http://examole.com/randomview/images/2/dp_pics/182328.jpg " (случайный пример)

1
Ram

Примечание: в реакции вы можете поместить выражение javascript в фигурную скобку. Мы можем использовать это свойство в этом примере.
Примечание: взгляните на приведенный ниже пример: 

class LoginForm extends React.Component {

  constructor(props) {
    super(props);

    this.state = {i:1};
  }

  handleClick() {
    this.setState(prevState => ({i : prevState.i + 1}));

    console.log(this.state.j);  
  }


  render() {

    return (
      <div>
        <p onClick={this.handleClick.bind(this)}>Click to change image</p>
        <img src={'images/back'+ this.state.i+'.jpg'}/>
      </div>
      );

  }
}
0
Kiran

Вот лучший вариант для Dynamic className или Props, просто сделайте конкатенацию, как мы делаем в Javascript.

     className={
        "badge " +
        (this.props.value ? "badge-primary " : "badge-danger ") +
        " m-4"
      }
0
Saad Mirza