2017-05-25 79 views
0

我定義在../actions/AuthActions.js以下操作:陣營母語:undefined是不是一個函數(評估 'this.props.passwordChanged(文本)')

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); 
} 

,我得到的錯誤「未定義是不是一個函數...」,即使我已經定義了功能,導出的名稱。其中一個導出的名稱'emailChanged'按預期工作,但只有這一個,並且據我所知,這個名稱沒有什麼特別之處。我知道我一定會錯過一些顯而易見的東西,但希望得到任何幫助。

回答

2

我假設你正在使用redux,並嘗試從你的組件調用動作。問題在於,您沒有將您的動作創建者連接到組件,並使用redux的連接高階組件。

你需要做的,就是添加這些動作與連接這樣的:

import { connect } from 'react-redux'; 

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

這樣一來,這些行動將在this.props可用。

+0

謝謝!我已經爲emailChanged做過,但不是爲passwordChanged! :) –

相關問題