Функция mapDispatchToProps не работает React Redux

Есть react-redux с компонентом Login. Я попытался связать acitons с реквизитами компонента через mapDispatchToProps, но получил ошибку:

×
TypeError: this.props.login is not a function

Вот код:

import React from 'react'
import {connect} from 'react-redux'
import * as userActions  from '../actions/UserActions'

export class Login extends React.Component{
    constructor(props) {
        super(props)
        this.login = this.login.bind(this)
    }

    login () {
        console.info(this)
        this.props.login(this.username,this.password)
    }

    render(){
        return <div>
            <div class = "login-box">
                <form>
                    <div class = "form-group">
                        <label for = "exampleInputEmail1">Имя пользователя</label>
                        <input type = "email" class = "form-control" id = "exampleInputEmail1" aria-describedby = "emailHelp" placeholder = "Username" ref = {(input)=>{this.username = input}} />
                    </div>
                    <div class = "form-group">
                        <label for = "exampleInputPassword1">Пароль</label>
                        <input type = "password" class = "form-control" id = "exampleInputPassword1" placeholder = "Password" ref = {(input)=>{this.password = input}} />
                    </div>
                    <button class = "btn btn-primary" onClick= {this.login} >Войти </button>
                </form>
                </div>
        </div>
    }
}

const mapDispatchToProps = dispatch => {
    return {
        login:(username,password) => {
            dispatch(userActions.login(username,password))
        }
    }
}

export default connect(null,mapDispatchToProps)(Login)

PS: Я использую response-redux-router, если это помогает

попробуйте это для mapDispatchToProps const mapDispatchToProps = { login: userActions.login }

Tushar Chutani 20.11.2018 05:50

Также не уверен, что это будет проблемой, но добавьте попробуйте сделать mapStateToProps для ()=>{} вместо null

Tushar Chutani 20.11.2018 05:52

@TusharChutani Это не решило проблему :(

Юрий Шиповалов 20.11.2018 05:57

@ShubhamKhatri Это работает, большое спасибо. Вы можете отформатировать этот ответ как ответ, и я проголосую за него

Юрий Шиповалов 20.11.2018 06:35

@ ЮрийШиповалов Учитывая, что другой ответ решает вашу проблему, вероятно, будет правильным пометить этот как дубликат, и вы можете проголосовать за ответ и вопрос по дублирующейся ссылке

Shubham Khatri 20.11.2018 06:38

Вы забыли вернуть dispatch в функции mapDispatchToProps. Попробуйте return dispatch(userActions.login(username,password))

Aref Aslani 20.11.2018 06:41

Можете ли вы попробовать зарегистрировать this.props в функции входа в систему?

Vgoose 20.11.2018 12:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
7
53
0

Другие вопросы по теме