Redux的新手。我正在工作的地方跟随一个示例,尝试使用无状态组件创建Facebook登录按钮。我似乎无法完成将clickHandler属性绑定到任何描述函数的基本操作。在下面的示例中,我将其简化为简单的控制台日志。无论我做什么,当我单击按钮时,都会显示“ clickHandler不是函数”。我究竟做错了什么?

零件

import React from 'react';

const FacebookLoginComponent = (props) => {
    const {
        clickHandler
    } = props;
    return(
        <button className="btn btn-primary" onClick={ () => clickHandler() }>Say hello</button>
    )
}
export default FacebookLoginComponent;


容器

import { connect } from 'react-redux';
import FacebookLoginComponent from "../components/FacebookLogin";

const mapStateToProps = state => ({});
const mapDispatchToProps = dispatch => ({
    clickHandler: () => console.log('hello')
})

const FacebookLogin = connect(
    mapStateToProps,
    mapDispatchToProps,
)(FacebookLoginComponent);

export default FacebookLogin;

最佳答案

我怀疑您可能是错误地使用了未连接的FacebookLoginComponent而不是已连接的FacebookLogin

如果您使用的是FacebookLoginComponent而不传递任何道具,则clickHandler确实不是一个函数。

10-06 00:22