2016-10-31 3 views
1

у меня есть это в моей возвращенной части моей визуализации функции:Не удается прочитать свойство [функция] неопределенной

<table> 
     <tbody> 
      {nums.map(function(num, index){ 
      return <tr key={ index }>{num} <input type="submit" value="unmatch" onClick={this.unMatchButtonClicked} /> 
      </tr>; 
      })} 
     </tbody> 
     </table> 

Но когда я загрузить страницу, я получаю сообщение об ошибке сказав: Cannot read property 'unMatchButtonClicked' of undefined

Несмотря на то, функция непосредственно перед render:function()

unMatchButtonClicked: function(){ 
    console.log('called'); 
}, 

так, что сфера this и почему это не определено?

+1

набор '' this' для .map' обратного вызова - 'nums.map (функция (число, индекс) {/ * код * /}, это)' –

+0

@AlexanderT. cheers bro –

+0

@AlexanderT. У меня есть одна проблема с этим. теперь он изменяет 'this' в других частях кода и устанавливает переменную в другом месте == для мыши, а не' this', она должна быть в другом месте. может разработать, если вам нужно –

ответ

0
  1. Опция: Array.map(function() {/*...*/}, this)
  2. Опция: var unMatchButtonClicked = this.unMatchButtonClicked и onClick={unMatchButtonClicked}

Кроме того, вы должны рассмотреть возможность использования стрелочкой функции для клик-обработчика или связать this вашей функции.
http://egorsmirnov.me/2015/08/16/react-and-es6-part3.html

Смежные вопросы