Создатель действий либо вызывается при рендере, либо вообще не может быть вызван React-Redux - PullRequest
1 голос
/ 13 марта 2020

У меня есть создатель действия, которому для обновления магазина нужно передать некоторые данные:

создатель действия:

    export const addPokemonToTeam = pokemon => {
    return {
        type: actionTypes.ADD_POKEMON_TO_TEAM,
        pokemon: pokemon
    }
}

фрагмент редуктора:

        case actionTypes.ADD_POKEMON_TO_TEAM :
        return {
            ...state,
            myTeam: state.myTeam.concat([action.pokemon])

        }

Но когда я использую этот код в диспетчере карт для реквизита:

const mapDispatchToProps = dispatch => {
  return{
    onAddPokemonToTeamHandler: pokemon => 
      dispatch(myTeamActions.addPokemonToTeam(pokemon))
  }
}

, а затем передаю его в качестве функции onClick компоненту:

     <TeamToggle
       displayStyle="add"
       onClick={() => this.props.onAddPokemonToTeamHandler(this.state.pokemon)}
       >
         Add to my team
      </TeamToggle>

Передача реквизита таким образом, как анонимная функция, делает код вообще не выполняется, и я не понимаю, почему. Если я передаю его без анонимной функции, он, конечно, выполняется, как только компонент отображается. Любые идеи о том, как вызвать создателя действия только на клик?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...