Не удается импортировать Materialize CSS JS React

Доброе утро всем,

Я изо всех сил пытался заставить материализовать css для работы в моем приложении для реакции, в частности, с файлами Javascript.

Я пробовал несколько способов, но, как мне кажется, я продвинулся дальше.

В моем файле "landingpage.js":

import React, { Component } from 'react';
import './styles/css/custom.css';
import $ from 'jquery';
import 'materialize-css'; // It installs the JS asset only
import '../node_modules/materialize-css/js/modal';

Цель состоит в том, чтобы открыть простое всплывающее окно (чтобы я мог проверить, правильно ли импортируется JS)

            <div>
            <a class = "waves-effect waves-light btn modal-trigger" href = "#modal1">Modal</a>
            <div id = "modal1" class = "modal">
                <div class = "modal-content">
                <h4>Modal Header</h4>
                <p>A bunch of text</p>
                </div>
                <div class = "modal-footer">
                <a href = "#!" class = "modal-close waves-effect waves-green btn-flat">Agree</a>
                </div>
            </div>    
        </div>

Итак, как только компонент смонтируется:

   componentDidMount() {
    $('.modal').modal();
}

Однако когда я нажимаю кнопку, должно открываться всплывающее окно:

ReferenceError: Component is not defined

Эта ошибка возникает в файле JS, который я пытаюсь импортировать.

Я пробовал импортировать разными способами, и приложение даже ничего не распознало. Я пытался импортировать это в течение двух дней и много искал в Интернете, я делаю это для проекта School Final, пытаясь самостоятельно научиться реагировать.

Вот ссылка на фреймворк, который я пытаюсь импортировать:

https://materializecss.com/modals.html#!

Спасибо за ваше время.

Вам необходимо включить CSS в свой html

ninesalt 17.05.2018 12:37

Он уже импортирован. CSS работает нормально, JS - нет.

Sashiimi 17.05.2018 12:41
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
2 052
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

использование jquery с реакцией вообще не рекомендуется если вы пытаетесь использовать материал, как насчет использования библиотеки, например

материал-интерфейс установить его с помощью

npm i material-ui --save 

и вы можете следовать примеру здесь для диалога, который в основном является модальным диалог в пользовательском интерфейсе материала

Спасибо за предложение. Я изучил Material-UI, и он хорошо работает с React, однако мне не очень нравится его документация, так как я все еще новичок. Я считаю, что документация по materializecss намного яснее и понятнее. Я просто импортирую JS, чтобы все это работало :(

Sashiimi 17.05.2018 13:27
Ответ принят как подходящий

Вам нужно добавить полный путь из модуля npm в файл точки входа, чтобы webpack мог использовать ваш css ...

вот пример типичного приложения create-response-app, использующего Index.js или как вы его называете, если вы делаете свой собственный шаблон реакции.

Index.js

import React from 'react';
import ReactDOM from 'react-dom';
import 'materialize-css/dist/css/materialize.min.css'; // <---

import App from './components/App';

ReactDOM.render(<App />, document.getElementById('root'));

Как только это будет сделано, ваши компоненты получат доступ к свойствам css. Я также рекомендую вам установить npm i -S materialize-css@next, чтобы вы могли использовать компоненты JS без использования JQuery.

Другие вопросы по теме