Я работал с React в течение нескольких месяцев над новым проектом и недавно решил внедрить Redux (все еще плохо знакомый с ним).
Функция getMusicGenreOptions работала до добавления ее в редуктор / реализацию редукса.Я не уверен, как передать 'событие' (в частности, event.target.name) при отправке функции редуктора, чтобы оно не возвращало undefined (onClick).
Моя ошибка:
TypeError: Невозможно прочитать свойство 'target' из неопределенного
Мой код:
Событие Click
<button
className="categories"
name="blue note"
onClick={(event) =>
{
event.preventDefault();
this.props.getMusicGenreOptions(event);
}
}
>blue note
</button>
Диспетчер
const mapDispatchToProps = (dispatch, event) => {
return {
getMusicGenreOptions: (event) =>
dispatch({
type: 'GET_MUSIC_GENRE_OPTIONS',
}),
}
}
Редуктор
export const reducerInterestForm = (state = initialState, action) => {
switch (action.type) {
case "GET_MUSIC_GENRE_OPTIONS":
const genre = event.target.name; // get the name of the music genre via event target
const music = data.interest.filter( music => music.category === "music" ); // filter music specific interest into an array (no movies or television)
const filteredOptions = music.find( options => options.group === genre); // filter out the specific genre via event target
return Object.assign({}, state, {
currentMusicGenre: this.state[filteredOptions.state]
})