2015-12-14 24 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),最好是一個Stack Snippet('<>'按鈕)? –

+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,不是類型錯誤。因爲它是一個類型錯誤,我們知道this.props要麼不具有org_selected財產,或有一個與價值undefined