Как импортировать Modernizr в React - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь определить, поддерживает ли браузер window.addEventListener в приложении create-реагировать. Я следовал инструкциям на сайте modernizr и создал файл modernizr.min.js только с одним тестом, который мне нужен. Я не могу импортировать modernizr, так как это не модуль. Минимизированный код трудно читать, поэтому я не уверен, где бы я изменил его, чтобы сделать его модулем.

Так как же я на самом деле использую Modernizr в javascript приложении реагировать?

1 Ответ

0 голосов
/ 16 января 2019

Под вашим public/index.html просто импортируйте скрипт напрямую

публичный / index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
    <meta name="theme-color" content="#000000" />


    ...


    <!-- add your scripts here -->
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>
    <!-- -->


    <title>React App</title>
  </head>
  <body>

И тогда в вашем коде просто позвоните прямо

т.е.. в App.jsx

import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';

class App extends Component {
  render() {

    // add this to not trigger eslint no-undef
    /* global Modernizr */
    console.log(Modernizr);
    // do your checking with Modernizr
    if (Modernizr.awesomeNewFeature) {
      // do your stuff here
    } 

 ...

Если вы используете машинопись , вам нужно сначала объявить модуль / объект в начале файла машинописи, который будет использовать Modernizr, т.е.

declare const Modernizr:any;

или расширить интерфейс Window, т.е.

declare global {
  interface Window {
    Modernizr:any     
  }
}

и вызовите Modernizr под window интерфейсом, вот так

window.Modernizr.someFeature
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...