Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Проблема с jquery в React.JS приложении (https://javascript.ru/forum/library-toolkit-framework/72651-problema-s-jquery-v-react-js-prilozhenii.html)

Muviez 14.02.2018 23:43

Проблема с jquery в React.JS приложении
 
Здравствуйте, у меня возникла вот такая вот ошибка в моем приложении ReactJS я уже долго сижу и никак не могу ее исправить.
Если кто знает, как решить проблему, помогите пожалуйста
Я так понял, что React ругается, когда лезут в его DOM и что-то меняют, но мне нужно подключить сторонние скрипты в мое приложение и у меня не получается из-за того, что я не могу это исправить...

P.S Прошу прощения, что возможно доставляю неудобства заливая скрин ошибки через сервис, просто через форум он очень нечеткий
Скрин ошибки http://www.picshare.ru/view/8445112/


src/index.jsx
import React, { Component } from 'react';
import ReactDOM, { render } from 'react-dom';

import App from './App.jsx';

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


src/App.jsx
import React, { Component } from 'react';
import ReactDOM, { render } from 'react-dom';

import App from './App.jsx';

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


src/blocks/Layout/index.jsx
import React, { Component } from 'react';
import ReactDOM, { render } from 'react-dom';

class Layout extends Component {
    render() {
        return (
            <div className="layout">
                <div className="header">
                    <nav className="navbar navbar-ct-blue navbar-fixed-top navbar-transparent" role="navigation">
                        <div className="container">
                            <div className="navbar-header">
                            <button type="button" className="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                                <span className="sr-only">Toggle navigation</span>
                                <span className="icon-bar"></span>
                                <span className="icon-bar"></span>
                                <span className="icon-bar"></span>
                            </button>
                            <a className="navbar-brand navbar-brand-logo" href="#">
                                    <div className="logo">
                                        <img src="" alt="Photo" />
                                    </div>
                                    <div className="brand"> Creative Tim </div>
                                </a>
                            </div>
                            <div className="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                            <ul className="nav navbar-nav navbar-right">
                                        <li>
                                            <a href="javascript:void(0)" data-toggle="search">
                                                <i className="pe-7s-search"></i>
                                                <p>Search</p>
                                            </a>
                                        </li>
                                        <li>
                                            <a href="#">
                                                <i className="pe-7s-mail">
                                                    <span className="label"> 23 </span>
                                                </i>
                                                <p>Messages</p>
                                            </a>
                                        </li>
                                <li className="dropdown">
                                <a href="#" className="dropdown-toggle" data-toggle="dropdown">
                                            <i className="pe-7s-user"></i>
                                            <p>Account</p>
                                </a>
                                <ul className="dropdown-menu">
                                    <li><a href="#">Action</a></li>
                                    <li><a href="#">Another action</a></li>
                                    <li><a href="#">Something else here</a></li>
                                    <li className="divider"></li>
                                    <li><a href="#">Separated link</a></li>
                                </ul>
                                </li>
                            </ul>
                            </div>
                        </div>
                    </nav>
                </div>
                
                <div className="content">
                    {this.props.children}
                </div>
                <div className="footer">

                </div>
            </div>
        );
    }
}

export default Layout;


public/index.html
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <!--     Fonts and icons     -->
    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:400,700|Material+Icons" />
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css" />
    <!-- Material Kit CSS -->
    <link rel="stylesheet" href="assets/css/material-kit.css">

    <title>Document</title>
</head>
<body>

    <div id="root"></div>

    <script src="bundle.js"></script>
    <!--   Core JS Files   -->
    <script src="assets/js/core/jquery.min.js"></script>
    <script src="assets/js/core/popper.min.js"></script>
    <script src="assets/js/bootstrap-material-design.min.js"></script>

    <!-- Plugin for the Sliders, full documentation here -->
    <script src="assets/js/plugins/nouislider.min.js"></script>

    <!-- Material Kit Core initialisations of plugins and Bootstrap Material Design Library -->
    <script src="assets/js/material-kit.min.js"></script>
</body>
</html>

Nexus 15.02.2018 08:34

У вас на скриншоте видно, что дело не в реакте, а в том, что у jQ Object либо вовсе нет метода "tagsinput", либо это не метод, а свойство.
Посмотрите какие зависимости есть у "material-kit.js" и добавьте их на страницу перед этим скриптом.

Muviez 15.02.2018 20:48

Если я делаю, как вы говорите, то у меня появляется следующая ошибка
http://www.picshare.ru/view/8448297/
Я просто взял и переместил файл material-kit.js выше файла jquery

Nexus 16.02.2018 01:04

Цитата:

Сообщение от Muviez
Я просто взял и переместил файл material-kit.js выше файла jquery

Я разве где-то написал, что нужно перенести этот файл выше jq?

Muviez 16.02.2018 18:34

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

Nexus 16.02.2018 19:52

Muviez, откройте подключаемый файл, в комментарии в коде найдите его сайт.
На сайте можно найти и документацию, и все его зависимости.

Nexus 16.02.2018 20:04

Muviez, возможно это ваша библиотека:
https://github.com/creativetimofficial/material-kit
Если это так, то ознакомьтесь с этой страницей:
http://demos.creative-tim.com/materi...roduction.html

Upd. если на странице есть элементы с классом "tagsinput", то этот класс стоит удалить, либо подключить библиотеку "tagsinput", либо хотя бы добавить этот метод в jq:
jQuery.fn.tagsinput=function(){return this;};

Muviez 17.02.2018 20:28

Nexus, да это моя библиотека, но я подключал все правильно, ибо скопировал стартовый шаблон у них.
Нет, на странице нет элементов с таким классом
Куда нужно прописать эту строчку кода, которую вы мне написали, чтобы это было правильно?
Я вроде нашел эту библиотеку для npm https://www.npmjs.com/package/bootstrap-tagsinput
Или cdnjs - https://cdnjs.cloudflare.com/ajax/li...p-tagsinput.js

Не могли бы вы пожалуйста посмотреть подходят ли они?

Nexus 17.02.2018 20:45

Muviez, просто подключите эту библиотеку перед "material-kit.js", должно помочь.

Upd. обратите внимание на этот комментарий:
https://github.com/creativetimoffici...ment-283769774
В нем присутствует ссылка на необходимую вам библиотеку.

Muviez 18.02.2018 01:03

Nexus, даааа, спасибо вам огромное!!!
Плюс в карму однозначно!

И еще кое-что, я конечно уже совсем обнаглел, но вы не могли бы подсказать причину данной ошибки? Не совсем понимаю...
http://www.picshare.ru/view/8449915/


Часовой пояс GMT +3, время: 16:41.