对象的原型是必需的还是null?

时间:2018-11-26 09:56:34

标签: reactjs react-proptypes

如何声明对象或null的原型?我试过了,但是不行:

page: PropTypes.oneOf([
    PropTypes.shape({
      elements: PropTypes.array.isRequired,
      isFailed: PropTypes.bool.isRequired,
      isFetching: PropTypes.bool.isRequired,
      isRefreshing: PropTypes.bool.isRequired,
      isSuccess: PropTypes.bool.isRequired,
    }).isRequired,
    PropTypes.oneOf([null]).isRequired,
  ]).isRequired,

还是可能这样?

page: PropTypes.oneOfType([null, 
        PropTypes.shape({
          elements: PropTypes.array.isRequired,
          isFailed: PropTypes.bool.isRequired,
          isFetching: PropTypes.bool.isRequired,
          isRefreshing: PropTypes.bool.isRequired,
          isSuccess: PropTypes.bool.isRequired,
        }).isRequired]).isRequired

1 个答案:

答案 0 :(得分:0)

虽然感觉不正确,但是可以起作用:

PageItem.defaultProps = {
  page: null
}
PageItem.propTypes = {
  page: PropTypes.shape({
    elements: PropTypes.array.isRequired,
    isFailed: PropTypes.bool.isRequired,
    isFetching: PropTypes.bool.isRequired,
    isRefreshing: PropTypes.bool.isRequired,
    isSuccess: PropTypes.bool.isRequired,
  }),
}

我刚刚删除了页面形状上的isRequired