Reactjs 未使用mapDispatchtoProps映射操作

Reactjs 未使用mapDispatchtoProps映射操作,reactjs,undefined,action,Reactjs,Undefined,Action,大家好,圣诞快乐 我已创建并使用如下源代码执行操作: export const SWITCH_LANGUAGE = 'SWITCH_LANGUAGE'; export function switchLanguage(language) { return { type: SWITCH_LANGUAGE, payload: language }; } 然后我想让这个动作成为我page.js中的道具 因此,我

大家好,圣诞快乐 我已创建并使用如下源代码执行操作:

export const SWITCH_LANGUAGE = 'SWITCH_LANGUAGE';

    export function switchLanguage(language) {

        return {
          type: SWITCH_LANGUAGE,
          payload: language
        };
    }
然后我想让这个动作成为我page.js中的道具 因此,我写:

import { switchLanguage } from '../actions/index';
...
function mapDispatchToProps(dispatch) {
  return bindActionCreators({ switchLanguage }, dispatch);
}
..
const switchLanguage = this.props.switchLanguage;
但是当我编写console.log(props.switchLanguage)时,它会显示

function () {
        return dispatch(actionCreator.apply(undefined, arguments));
      }

为什么会发生这种情况???

您得到的输出是预期的。那里没有什么问题。该行:

function () {
    return dispatch(actionCreator.apply(undefined, arguments));
}   
动作创建者(
switchLanguage
)应用了任何传入参数(使用
apply
),然后将其传递到
dispatch
。这正是
bindActionCreators
的用途

根据文档,当您想要将一些动作创建者传递给一个不知道的组件时,使用
bindActionCreators
Redux,并且您不想将dispatch或Redux存储传递给它。 更多信息请访问

在您的组件中,您可以像刚才一样访问任何道具。然后,当您想要分派操作时,只要调用
this.props.switchLanguage(/*language*/)
switchLanguage(/*language*/)
,如果您以前从
this.props
提取过函数


只要减速器正确处理动作,一切都应该按预期工作。

您得到的输出是预期的。那里没有什么问题。该行:

function () {
    return dispatch(actionCreator.apply(undefined, arguments));
}   
动作创建者(
switchLanguage
)应用了任何传入参数(使用
apply
),然后将其传递到
dispatch
。这正是
bindActionCreators
的用途

根据文档,当您想要将一些动作创建者传递给一个不知道的组件时,使用
bindActionCreators
Redux,并且您不想将dispatch或Redux存储传递给它。 更多信息请访问

在您的组件中,您可以像刚才一样访问任何道具。然后,当您想要分派操作时,只要调用
this.props.switchLanguage(/*language*/)
switchLanguage(/*language*/)
,如果您以前从
this.props
提取过函数


只要减速器正确处理操作,一切都应该按预期工作。

i这就是问题所在const switchLanguage=this.props.switchLanguage(//参数)参数?我不这么认为,但感谢您的快速回复:)那么有什么问题吗?它将打印未定义,因为redux存储中没有存储值。看,我有另一个示例向您展示我的操作:我这是问题const switchLanguage=this.props.switchLanguage(//参数)参数?我不这么认为,但感谢您的快速回复:)那么有什么问题吗?它将打印未定义,因为redux Store中没有存储值。看,我有另一个示例向您展示我有一个操作: