PropTypes形状的一部分

时间:2019-05-26 00:55:58

标签: reactjs react-proptypes

我有类似这样的东西:

export const LocalesModel = PropTypes.shape({
  defaultLocale: PropTypes.string.isRequired,
  supportedLanguages: PropTypes.arrayOf(PropTypes.string).isRequired,
  messages: MessageModel,
});

在组件中,我得到的模型是这样的:

import { LocalesModel } from '...';

const Component = () => ...

Component.propTypes = {
   supportedLanguages: ???
}

我希望能够做类似的事情:

Component.propTypes = {
   supportedLanguages: LocalesModel.supportedLanguages
}

但是我知道这行不通。有什么方法可以获取PropTypes形状的属性-还是我只需要从supportedLanguages中提取LocalesModel

1 个答案:

答案 0 :(得分:0)

您可以不使用PropTypes.shape导出形状:

export const LocalesModel = {
  defaultLocale: PropTypes.string.isRequired,
  supportedLanguages: PropTypes.arrayOf(PropTypes.string).isRequired,
  messages: MessageModel,
};

然后在使用它的位置添加PropTypes.shape

Component.propTypes = {
 supportedLanguages: PropTypes.shape(LocalesModel.supportedLanguages)
}