Тип файла React PropTypes

#reactjs #react-proptypes

#reactjs #react-proptypes

Вопрос:

Как мне проверить, имеет ли переданный prop тип File, используя Proptypes?

PropTypes.instanceOf(File) сбой при использовании ReferenceError: File is not defined

Примечание: new File() конструктор и typeOf someVar === File не выдают указанную ошибку ссылки

Комментарии:

1. PropTypes.instanceOf(File) у меня сработало…

Ответ №1:

Исходя из этого: https://www.w3.org/TR/FileAPI/#file-section Итак, что вы могли бы сделать, так это проверить, есть ли у объекта свойство name, которое является строкой: что-то вроде этого:

 const isFile = function(props, propName, componentName) {
  const retVal = typeof props[propName].name == 'string';
  return new Error(
        `Invalid prop ${propFullName} supplied to ${componentName}. It is not a File.`
      );
}
Component.propTypes = {
   onClick: isFile(1) 
}