Rep PropTypes.shapes相互依赖

问题描述 投票:1回答:1

我声明了两种形状:

export const parentShape = PropTypes.shape({
  id: PropTypes.string.isRequired,
  name: PropTypes.string.isRequired,
  // ...someProps
  children: PropTypes.arrayOf(childShape),
});

export const childShape = PropTypes.shape({
  id: PropTypes.string.isRequired,
  name: PropTypes.string.isRequired,
  // ...otherProps
  parent: parentShape,
});

[parentShape使用childShape,并且childShape使用parentShape

现在在定义childShape之前,我有警告。我该如何解决?

reactjs react-proptypes
1个回答
0
投票

您可以使用parentShapeProps的道具创建变量(parentShape),而不是直接将其传递给PropTypes.shape,然后仅在定义children后才能将parentShapeProps添加到childShape:] >

const parentShapeProps = {
  id: PropTypes.string.isRequired,
  name: PropTypes.string.isRequired,
  // ...someProps
};

export const parentShape = PropTypes.shape(parentShapeProps);

export const childShape = PropTypes.shape({
  id: PropTypes.string.isRequired,
  name: PropTypes.string.isRequired,
  // ...otherProps
  parent: parentShape,
});

parentShapeProps.children = PropTypes.arrayOf(childShape);

0
投票

您可以用parentShape / let预定义var

© www.soinside.com 2019 - 2024. All rights reserved.