Как вызвать функцию onclick внутри литерала шаблона в React js - PullRequest
0 голосов
/ 10 января 2020

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

  addPopupToLayer = (surface, layer) => {
  const { surface_type: { name, color } } = surface;
  const customPopup = `
   <div class=${styles.tooltipHeader}>
      <h4>${surface.name}</h4>
      <button onclick=${()=> this.viewDetails(surface)}>View</button>
    </div>   
    <p>${name}</p>
  `;
  const customOptions = { className: styles.tooltip, width: '200' };
  const customlayer = layer.bindPopup(customPopup ,customOptions );

  customlayer.setStyle({
     fillColor: color,
     color,
     opacity: 1,
     fillOpacity: 0.48
  });
  return customlayer;
};


 viewDetails = (surface) => {
   console.log("View Details is Called")
  }

Ответы [ 2 ]

2 голосов
/ 10 января 2020

удалить символ $ при вызове функции, она будет работать

<button onclick={()=> ViewDetails(surface)}>View</button>
0 голосов
/ 10 января 2020
const customPopup = 
`<div class=${styles.tooltipHeader}>
  <h4>${surface.name}</h4>
  <button onClick={()=> ViewDetails(${surface})}>View</button>
</div>   
<p>${name}</p>`;

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

...