2015-12-14 3 views
1

Ошибка (срабатывает при выборе пункта меню):Переменная не найдена в функции стрелка

TypeError: org_selected is undefined

возвращается на следующий фрагмент кода:

renderItems() { 
    let { orgs, org_selected, orgs_loading } = this.props; 
    ... 
    return <Nav> 
     <NavDropdown title={org_login} id="basic-nav-dropdown"> 
      {_.map(orgs, (org) => { 
       return <MenuItem 
        key={org.id} 
        onSelect={() => org_selected.set(org.id)}>{org.login}</MenuItem>; 
      })} 
     </NavDropdown> 
    </Nav>; 
} 

Почему не переменная найти: не работают ли функции стрелки в той же области?

+1

Вы можете проверить, что в _this.props_? вы уверены, что существует _org_selected_? – Grundy

+1

В вышеизложенном, не имеет значения, является ли это функцией стрелки или простой функцией; в любом случае это замыкание в контексте, в котором определяется 'org_selected'. Можете ли вы сделать полный [MCVE] (/ help/mcve), в идеале, как фрагмент стека (кнопка '<>')? –

+0

@Grundy: Вы положили на него свой палец! Если проблема заключалась в том, что в области не было переменной 'org_selected', это было бы' ReferenceError', а не 'TypeError'. Поскольку это 'TypeError', мы знаем, что вы правы,' this.props' либо не имеет 'org_selected', либо имеет значение' undefined'. –

ответ

2

Вы должны проверить значение для this.props. Удостоверьтесь, что у this.props есть org_selected.

В T.J. pointed out, если проблема была, что не было org_selected переменными в области видимости, это было бы ReferenceError, не TypeError. Так как это TypeError, мы знаем, что this.props либо не имеет свойства org_selected, либо имеет значение со значением undefined.

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