2016-07-29 4 views
1

Я создаю компонент фильтра на основе списка фильмов. Я почти на месте. Я создал свое действие, редуктор и компоненты. Глядя на мои инструменты React/redux dev, все выглядит нормально. однако я не могу отправить свое действие должным образом.Как отправить значение OnChange? e не определен error 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

Спасибо. Я не буду следовать за вами на 'в вашем диспетчере, принимающем e в качестве параметра. '? –

+0

Я обновил свой ответ, чтобы показать, где вам не хватает параметра – John

+0

Хорошо. Я пробовал некоторые вещи, но не этот :) Итак, почему люди используют 'onChange = {e => onChangeYear (e.target.value)}' на уровне компонента? –

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