当前位置: 首页 > 知识库问答 >
问题:

警告:道具类型失败:游戏:道具类型游戏无效;它必须是一个函数,通常来自React。产品类型

益思博
2023-03-14
import React, { PropTypes } from 'react';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';

// import UI components
import GameList from '../components/game/GameList';

// import actions
import gameActions from '../actions/game';

const Game = (props) => {
  const { game, actions } = props;
  return (
    <GameList game={game} actions={actions} />
  );
};

Game.propTypes = {
  game: PropTypes.shape.isRequired,
  actions: PropTypes.shape.isRequired,
};

function mapStateToProps(state) {
  return {
    game: state.game,
  };
}

function mapDispatchToProps(dispatch) {
  return {
    actions: bindActionCreators(gameActions, dispatch),
  };
}

export default connect(mapStateToProps, mapDispatchToProps)(Game);

我试图将这两个道具作为对象传递给一个组件,我得到了无效的道具类型错误。

我需要这两个道具成为对象,我很确定它们是对象,为什么它需要它们成为功能

共有1个答案

上官树
2023-03-14

问题在于您的propTypes定义:

Game.propTypes = {
  game: PropTypes.shape.isRequired,
  actions: PropTypes.shape.isRequired,
};

对于你应该做的每一件事:PropTypes。形状({})。i需要属性类型。对象isRequired

只需执行shape即可将shape函数作为期望值传递。

 类似资料: