2016-07-29 27 views
1

我正在構建基於電影列表的過濾器組件。我快到了。我已經設置了我的行動,減速機和組件。看着我的React/redux開發工具,一切似乎都沒問題。但是我無法正確發送我的動作。如何分配OnChange值? e未定義錯誤React/redux

這裏是我的組件事件:

<div> 
    Year: 
    <select 
    defaultValue={selectedYear} 
    onChange={e => onChangeYear(e.target.value)} 
    > 
    <option value="all" >All</option> 
    {years.map((y, i) => 
     <option key={i} value={y}>{y}</option> 
    )} 
    </select> 
</div> 

,這裏是我的調度員:

const mapDispachToProps = (dispatch) => { 
    return { 
    onChangeYear:() => {dispatch (onYearChange(e.target.value)); 
     }, 
    }; 
}; 

onYearChange很好進口,以及在我的動作元件定義。 如何在我的調度程序中通過e.target.value沒有任何錯誤?

謝謝。

回答

3

將您所選的onChange屬性更改爲僅設置爲={onChangeYear},並在您的調度程序中接受e作爲參數。

const mapDispachToProps = (dispatch) => { 
    return { 
     onChangeYear:() => {dispatch (onYearChange(e.target.value)); 
    }, 
}; 

成爲

const mapDispachToProps = (dispatch) => { 
    return { 
     onChangeYear: (e) => {dispatch (onYearChange(e.target.value)); 
    }, 
}; 
+0

感謝。我不是在你的調度員接受你作爲參數。 –

+0

我更新了我的答案,以顯示您在哪裏丟失參數 – John

+0

好的。我嘗試了一些像但不是這樣的東西:)那麼爲什麼人們在level組件上使用'onChange = {e => onChangeYear(e.target.value)}'? –