这是LoginScreenContainer.js
translate
这是actions / auth.js
import React from 'react'
import { connect } from 'react-redux'
import LoginScreen from '../components/LoginScreen.js'
import * as AUTH_ACTIONS from '../actions/auth.js'
const mapStateToProps = state => ({
loggedIn: state.AUTH.loggedIn
})
const mapDispatchToProps = (dispatch) => {
loginDefault: (username , password) => {
dispatch(AUTH_ACTIONS.actions.loginDefault(username, password))
}
}
export default connect(mapStateToProps, mapDispatchToProps)(LoginScreen)
调试此方法的最佳方法是什么。 我无法弄清楚哪个部分出了问题。 我一直在想这3天。 需要指导和帮助。 谢谢。
(我很反应)
答案 0 :(得分:4)
您的调度缺少返回值,您应该将其更改为
const mapDispatchToProps = (dispatch) => ( { // <- forgot the wrapping with ( here
loginDefault: (username , password) => {
dispatch(AUTH_ACTIONS.actions.loginDefault(username, password))
}
} ) // <- forgot closing of the wrapping with ) here
这是由于箭头功能的性质,你似乎正确地做了道具的状态,所以我认为这是一个小的疏忽。
所以,箭头函数有这个
const sample = argument => { return { test: '1' } }
等于
const sample = argument => ( { test: '1' } );
但不是
const sample = argument => { test: '1' };
因此,如果您使用箭头函数,并且希望返回一个对象,则应该返回它,或者用( )
括号
答案 1 :(得分:1)
我可能错了,但我认为mapDispatchToProps
不正确:
const mapDispatchToProps = () => ({
loginDefault: AUTH_ACTIONS.actions.loginDefault,
})
然后在你的事件处理程序中:
this.props.loginDefault(username, password)