Поставить предупреждение при нажатии на React

#reactjs #ecmascript-6 #react-hooks #material-ui

#reactjs #ecmascript-6 #реагирующие крючки #материал-пользовательский интерфейс

Вопрос:

У меня здесь загрузчик изображений. Моя проблема в том, что я хотел, чтобы сначала alert отображался после нажатия, если вы не выбрали из autocomplete . В настоящее время alert появляется после выбора изображения.

Codesandbox НАЖМИТЕ ЗДЕСЬ

   const handleDrop = (e) => {
    e.nativeEvent.preventDefault();

    if (!value) {
      setOpen(true);
    } else {
      if (!e) return;
      const files = e.nativeEvent.dataTransfer.files;
      onUploadImage(files);
    }
  };

  const browseFiles = (e) => {
    if (!value) {
      setOpen(true);
    } else {
      if (!e) return;
      const files = e.currentTarget.files;
      onUploadImage(files);
    }
    e.target.value = null;
  };
 

Ответ №1:

Вы можете достичь этого, добавив onClick к кнопке, которая переносит ввод файла:

      <Button
      size="medium"
      variant="outlined"
      component="label"
      color="primary"
      onClick={(e) => {
        if (!value) {
          setOpen(true);
          e.nativeEvent.preventDefault();
        }
      }}
    >
      <input
        type="file"
        accept="image/*"
        multiple
        style={{ display: "none" }}
        onChange={(e) => browseFiles(e)}
      />
      Browse files
    </Button>