mapDispatchToProps не добавляет действия к компоненту - PullRequest
0 голосов
/ 09 февраля 2020

Я пытаюсь использовать connect как в Redux docs ( здесь ), и я также использую redux toolkit для работы с redux ( ссылка )

import { connect } from 'react-redux'
import { actions } from '../../redux/actions';

import FormComponent from './Form';

const mapStateToProps = (state: any) => ({
    item: 'state.item'
})

const mapDispatchToProps = { actions }

export default connect(
    mapStateToProps,
    mapDispatchToProps
)(FormComponent)

В моем FormComponent я получаю item реквизиты от mapStateToProps, но actions не передаются

Мои действия выглядят так

import { createAction } from '@reduxjs/toolkit';

const registerUser = createAction<Object, 'REGISTER_USER'>('REGISTER_USER');

export const actions = {
    registerUser
}

И если я сделаю console.log(actions), то это объект с функцией.

Вся помощь будет оценена.

1 Ответ

1 голос
/ 09 февраля 2020

Эта строка:

mapDispatchToProps = { actions }

Эквивалентно:

 mapDispatchToProps = {
   actions: {
     registerUser
   }
 }

Согласно документам bindActionCreators ожидается, что объект * sh создатели действий. В этом примере вы вложили свое свойство в actions свойство, которое (на основе source ) приведет к тому, что они будут исключены из возвращаемых реквизитов.

Если вы хотите, чтобы действия быть доступным непосредственно из реквизита, тогда вы можете установить mapDispatchToProps = actions, или просто передать actions непосредственно в connect например

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