React native:undefined不是一个函数(评估' this.props.passwordChanged(text)')

时间:2017-05-25 01:47:59

标签: javascript react-native

我在../actions/AuthActions.js中定义了以下操作:

export const emailChanged = (text) => {..};
export const passwordChanged = (text) => {..};

并将它们导出到" ./ index.js"如

export * from './AuthActions';

使用

导入LoginForm.js中的操作
import { passwordChanged, emailChanged } from '../actions';

并以下列方式使用了这些操作:

onEmailChange(text) {
   this.props.emailChanged(text);
}

onPasswordChange(text) {
    this.props.passwordChanged(text);
}

在模拟器中运行代码时,我收到错误' undefined不是函数...',即使我已经定义了函数,也导出了名称。其中一个导出的名称' emailChanged'按预期工作,但只有那一个,据我所知,这个名称没有什么特别之处。我知道我必须错过一些明显的东西,但我会感激任何帮助。

1 个答案:

答案 0 :(得分:2)

我假设您正在使用redux,并尝试从您的组件调用操作。问题是你没有将你的动作创建者与使用redux连接高阶组件的组件连接起来。

您需要做的是,使用以下连接添加这些操作:

import { connect } from 'react-redux';

export default connect(mapStateToProps, { emailChanged, passwordChanged })(LoginScreen)

这样,这些操作将在this.props中提供。