Почему я получаю предупреждение о недействительном типе проп? - PullRequest
0 голосов
/ 07 мая 2018

У меня есть следующий компонент:

import React from 'react';
import PropTypes from 'prop-types';
import styled from 'styled-components';
import { Box } from 'grid-styled';

const Pane = ({
  children,
  px,
  py,
}) => (
  <StyledBox
    px={px}
    py={py}
  >
    {children}
  </StyledBox>
);

Pane.propTypes = {
  children: PropTypes.node.isRequired,
  px: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.object)]),
  py: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.object)]),
  marginBottom: PropTypes.number,
  color: PropTypes.string,
};

Pane.defaultProps = {
  px: [null],
  py: [32, 40],
};

export default Pane;

Консоль JS моего веб-клиента выдает следующее предупреждение:

preview.bundle.js:4294 Warning: Failed prop type: Invalid prop пй supplied to панель . in Pane

Почему?

1 Ответ

0 голосов
/ 07 мая 2018

py: [32, 40], - это массив чисел, а вы объявляете, что это должно быть PropTypes.arrayOf(PropTypes.object) - массив объектов. Это не то же самое.

py: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),

Это означает, что это будет одно число типа 4 или массив чисел типа [32, 40].

...