Ошибка типа: jquery__WEBPACK_IMPORTED_MODULE_7 ___ default (...) (...). Daterangepicker не является функцией при использовании jquery с реагировать js - PullRequest
0 голосов
/ 13 ноября 2018

Я использую шаблон для реагирования js, в котором есть jquery. Для jquery я написал теги сценария в index.html и код jquery в componentDidMount (). Теперь он показывает ошибку для daterangepicker. Я включил файл js для daterangepicker в теги скрипта. мой код index.html:

 <link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Poppins:100,200,300,400,500,600,700,800,900' type='text/css'>
    <link rel="stylesheet" type="text/css" href="vendor/bootstrap/css/bootstrap.min.css" />
    <link rel="stylesheet" type="text/css" href="vendor/font-awesome/css/fontawesome-all.min.css" />
    <link rel="stylesheet" type="text/css" href="vendor/owl.carousel/assets/owl.carousel.min.css" />
    <link rel="stylesheet" type="text/css" href="vendor/owl.carousel/assets/owl.theme.default.min.css" />
    <link rel="stylesheet" type="text/css" href="vendor/daterangepicker/daterangepicker.css" />
    <link rel="stylesheet" type="text/css" href="css/stylesheet.css" />

  <script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="vendor/owl.carousel/owl.carousel.min.js"></script>
<script src="vendor/bootstrap-spinner/bootstrap-spinner.js"></script> 
<script src="vendor/daterangepicker/moment.min.js"></script> 
<script src="vendor/daterangepicker/daterangepicker.js"></script> 


<script src="js/theme.js"></script> 

Также компонент реакции с jquery выглядит следующим образом:

import React, {Component} from 'react';
 import moment from 'moment';

import $ from 'jquery';
// const $ = window.$;
window.jQuery = $;
window.$ = $;

class Layout extends Component {
    componentDidMount () {
        // $(function() {
            'use strict';
             // Depart Date
             $('#busDepart').daterangepicker({
               singleDatePicker: true,
               minDate: moment(),
               autoUpdateInput: false,
               }, function(chosen_date) {
             $('#busDepart').val(chosen_date.format('MM-DD-YYYY'));
             });
        //    });
    }

    render()
    {
        return(
//....code remaining

1 Ответ

0 голосов
/ 11 декабря 2018

Я тоже столкнулся с этой проблемой и не нашел ни одного ресурса в интернете. Наконец то, что я заметил, что вы не можете реализовать какую-либо библиотечную функцию, используя jquery, в реактивный проект. Вы должны поддерживать способ реагирования, что означает, что вы должны использовать библиотеку реагирования.

первая установка daterangepicker с использованием npm

npm установить реагирующее средство выбора даты --save

затем добавьте эти две строки в ваш файл, куда вы хотите добавить daterangepicker

import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";

А затем в своем классе определите код события daterangepicker, который я использовал по-своему, посмотрите, поможет ли вам.

class Search extends Component {

    constructor(props){
        super(props);

        this.state = {
            startDate: '',
            endDate: ''
        };

        this.handleStateDateChange = this.handleStateDateChange.bind(this);
        this.handleEndDateChange = this.handleEndDateChange.bind(this);
    }

    handleStateDateChange(date){
        this.setState({
            startDate: date
        });
    }

    handleEndDateChange(date){
        this.setState({
            endDate: date
        });
    }

в конце в функцию рендеринга просто вызовите модуль DatePicker

render() {
        return (
            <div>

                {/* Date Picker Start */}
                <div class="container-fluid">
                    <div class="Datecontent">
                        <label><b>Date Range Search</b></label>
                        <br />
                            <DatePicker
                                selected={this.state.startDate}
                                onChange={this.handleStateDateChange}
                                className='form-control'
                                placeholderText='Start Date'
                            />


                            <DatePicker
                                selected={this.state.endDate} 
                                onChange={this.handleEndDateChange}
                                className='form-control'
                                placeholderText='End Date'
                            />
                    </div>
                </div>
                {/* Date Picker End */}
            </div>
        );
    }
}

export default Search;

Это запустить проект. Спасибо.

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