【问题标题】:ReactJS You must pass a component to the function returned by connectReactJS 必须将组件传递给 connect 返回的函数
【发布时间】:2018-08-18 20:25:53
【问题描述】:

您必须将组件传递给 connect 返回的函数。 而是收到 {"id":"-LGZkSJah62kXrfUl-6u","teamA":"England","teamB":"England"}

所以connect返回的函数是'initAddMatchResult'。为什么不适合传递团队变量?

您好,我正在使用 redux 创建 React 应用程序并收到错误消息。您必须将组件传递给 connect 返回的函数。 而是收到 {"id":"-LGZkSJah62kXrfUl-6u","teamA":"England","teamB":"England"}

我的组件上有一个函数可以正确调用

addMatchResultHandler = (id, teamAName, teamBName) => {
    this.setState({
        inputtingResult: true
    })
    this.props.onAddMatchResult( id, teamAName, teamBName);
}

调度的动作..

const mapDispatchToProps = dispatch => {
    return {
        onFetchUpcomingMatches: () => dispatch(actions.fetchUpcomingMatches()),
        onAddMatchResult: (matchID, teamAName, teamBName ) => dispatch(actions.initAddMatchResult(matchID, teamAName, teamBName))
    }
}

export const initAddMatchResult = ( matchID, teamAName, teamBName  ) => {
    return {
        type: actionTypes.INIT_MATCH_RESULT_INPUT,
        matchId: matchID,
        teamAName: teamAName,
        teamBName: teamBName
    };
}

正确更新reducer中的状态。

const initAddMatchResult = ( state, action ) => {
    return updateObject( state, {
        selectedMatchForUpd: {
            matchID: action.matchId,
            teamAName: action.teamAName,
            teamBName: action.teamBName
        }
    } );
}

我已经在 redux 中确认 selectedMatchForUpd 正在使用正确的值进行更新。 那么为什么会抛出这个错误呢?任何帮助将不胜感激。

【问题讨论】:

  • 请在您打电话的地方发帖connect()
  • 您是否正确传递了组件? export default connect(mstp,mdtp)(Component) ?

标签: javascript reactjs react-redux


【解决方案1】:

啊,我不是……

我有 export default connect(mapStateToProps, mapDispatchToProps(MatchResultInput));

我应该自己整理那个。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-08
    • 2018-09-10
    • 2017-11-18
    • 2018-08-27
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多