• Как скачать файл с встроенного просмотрщика на сайте?

    Elaryks
    @Elaryks
    Самый простой вариант: открыть страницу, открыть консоль разработчика (F12 или Ctrl + Shift + I), затем вставить туда код, приведённый ниже, и нажать Enter:

    PDFViewerApplication.pdfDocument.mAllowPrint = true;
    document.getElementById('print').click();


    После этого откроется окно печати PDF, где можно выбрать, куда сохранить файл.
    Ответ написан
  • Почему при нажатии на кнопку слайдера картинка пропадает js?

    Elaryks
    @Elaryks
    Картинки переключаются (это видно, если убрать overflow: hidden у .card-list). Просто они расположены в столбик, который ограничен по высоте, при этом неактивные карточки занимают своё положение в документе даже при opacity: 0. Вероятно, вы где-то пропустили часть логики или стилей, чтобы первая картинка заменялась на активную картинку. Поскольку у карточек в вашем примере размеры одинаковые, достаточно заменить position: relative на position: absolute у .card.
    Ответ написан
    1 комментарий
  • Почему не выводится alert?

    Elaryks
    @Elaryks
    У DOM-элемента может быть только одно свойство onclick. Вы перезаписываете его через document.getElementById("clearButton").onclick на сброс значения поля ввода.

    Вы можете либо объединить код в одну функцию, либо использовать addEventListener, который позволяет вешать несколько обработчиков на одно событие:

    const buttonEl = document.getElementById("clearButton");
    
    buttonEl.addEventListener("click", () => {
      // Необходимый код 1
    });
    
    buttonEl.addEventListener("click", () => {
      // Необходимый код 2
    });
    Ответ написан
    Комментировать
  • Почему InputMaska не позволяет вводить номер телефона?

    Elaryks
    @Elaryks
    Судя по документации, маска должна выглядеть примерно так:

    const telMask = new Inputmask('+11 (999) 999-99-99');
    Ответ написан
  • Как передать объект стилей из константы в StyleSheet.create?

    Elaryks
    @Elaryks
    Можно попробовать как-то так:

    const styles: StyleSheet.NamedStyles<any> = {
        button: {
            position: 'absolute',
        },
    }
    
    export const scaledStyles = StyleSheet.create(styles);


    Или так:

    const styles = {
        button: {
            position: 'absolute',
        },
    }
    
    export const scaledStyles = StyleSheet.create<any>(styles);
    Ответ написан
    1 комментарий
  • Как взять данные из fetch-запроса в React-компоненте?

    Elaryks
    @Elaryks
    У вас используется асинхронная функция, которая возвращает промис. Соответственно, результата её выполнения нужно сначала дождаться. Поэтому getCharacters().data === undefined, и уже даже из этого очевидно, что getCharacters().data.results приведёт к ошибке, т.к. это попытка обратиться к свойству у undefined.

    Вашу проблему можно решить, используя хук useEffect с пустым массивом зависимостей, благодаря чему он сработает только при монтировании/размонтировании компонента:

    const [dataCards, setDataCards] = useState([]);
    
    useEffect(() => {
        getCharacters().then((data) => setDataCards(data));
    }, []);


    Здесь мы изначально инициализируем dataCards как пустой массив (что логично, ведь данных пока что нет). При монтировании компонента сработает useEffect, внутри него мы получим данные и уже их сможем использовать в dataCards.

    Кстати, обратите внимание, что вы указали настоящий ключ API.
    Ответ написан
    Комментировать
  • Как лучше переписать условие?

    Elaryks
    @Elaryks
    export const Footer = (props?: IFooterProps) => {
      return (
        <View style={styles.container}>
          {props?.button ? (
            <>
              <RNHoleView style={styles.background} holes={[hole]}>
                <View style={styles.maskBorder}></View>
              </RNHoleView>
              {props.button}
            </>
          ) : (
            <View style={styles.background}></View>
          )}
        </View>
      );
    };
    Ответ написан
    Комментировать
  • Не хочет скачиваться Atmel Studio 7, пишет то что нету подключения к интернету, что делать?

    Elaryks
    @Elaryks
    Попробуйте включить VPN, т.к. сервис Amazon AWS может быть заблокирован.
    Ответ написан
    1 комментарий
  • React (Класс расширяет значение undefined не является конструктором или null)?

    Elaryks
    @Elaryks
    Уберите круглые скобки после React.Component. Кроме того, не лишним будет настроить ESLint для отлавливания ошибок и Prettier для форматирования кода.
    Ответ написан
    Комментировать
  • Почему в твиттере в описание подставляет ссылки непоятные?

    Elaryks
    @Elaryks
    Это выглядит как ссылка, преобразованная в Punycode. Например, пример.рф будет закодирован как xn--e1afmkfd.xn--p1ai. Вероятно, нужно отформатировать описание таким образом, чтобы Twitter не пытался определить часть текста как ссылку.
    Ответ написан
    Комментировать
  • Почему не работает pattern на input?

    Elaryks
    @Elaryks
    Проверка с помощью атрибута pattern срабатывает непосредственно перед отправкой формы. Кроме того, это не запретит ввод символов, отличных от цифр, а лишь покажет уведомление в случае несоответствия. Вашу же задачу можно решить несколькими способами.
    Первый вариант: <input type="number" />. Из особенностей: он допускает ввод некоторых символов, отличающихся от цифр (например, "+" и "e").
    Второй вариант: перехватывать событие onChange у поля ввода:
    const [value, setValue] = useState('')
    
    const handleInputChange = (e) => {
      setValue(e.target.value.replace(/\D/g, ''))
    }
    
    <input value={value} onChange={handleInputChange} />
    Ответ написан
    Комментировать
  • Почему не выводятся данные в скрипте?

    Elaryks
    @Elaryks
    В коде используется свойство factor у полей ввода, но оно не определено.
    Можно, например, сделать так: <input data-factor="1" />, после чего получить значение в JS через form.elements[i].dataset.factor.
    Кроме того, нет свойства form.count. Можно сделать что-то вроде form.querySelectorAll('input[data-factor]').length
    Ответ написан
    Комментировать