使用arrayOf(shape({...}))进行自定义道具类型验证

时间:2018-01-10 16:06:26

标签: react-native

我正在尝试验证传递给组件的对象数组。如果它收到渲染函数,则不需要onPress,但onPress最初被声明为onPress.func.isRequired。如果render通过且onPress缺失,我不想要无效道具警告。这就是我所拥有的,它似乎有效,但我对自己的方法并不自信。



SideDrawer.propTypes = {
  drawerConfig: arrayOf(shape({
    isLink: bool,
    onPress: (propValue) => {
      if (!propValue.onPress && !propValue.render) {
        return new Error('on press is not defined');
      }
      return true;
    },
    render: func,
    displayText: string,
    iconName: string,
  })),
};




0 个答案:

没有答案