我声明了两种形状:
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
之前,我有警告。我该如何解决?
您可以使用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);
您可以用parentShape
/ let
预定义var
: