Внешние события не "падают" в реакции

Как и многие другие, я пытаюсь использовать Полный календарь с React. И, как и многие люди, пытающиеся заставить его зарегистрировать сброс внешних событий. Я включаю весь свой класс. Пожалуйста, помогите, и если мы сможем заставить это работать, я могу обновить пример, и никто не должен терять волосы, как у меня.:)

Я перепробовал каждую комбинацию.. буквально. Я закончил тем, что использовал плагин обертки, так как Календарь только продолжал дуть.

Я уверен, что это связано с тем, как я загружаю плагины или как я передаю перетаскиваемые данные. Я только что создал простой div над календарем, и я могу перетащить его, и он и календарь будут выделены, когда я перетаскиваю.. bt, когда я перетаскиваю, ни один регистр даже... ничего... нада.. пшик.

У кого-нибудь есть предложения?

import React, { Component } from "react";
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/';
import '../styles/calendar.css'

import 'fullcalendar-reactwrapper/dist/css/fullcalendar.min.css'
import FullCalendar from 'fullcalendar-reactwrapper';
import { dayGrid } from '@fullcalendar/daygrid';
import interactionPlugin, { Draggable } from '@fullcalendar/interaction';
// import  {Calendar } from '@fullcalendar/core';
import '@fullcalendar/core/main.css';
import '@fullcalendar/daygrid/main.css';
class MyCalendar extends Component {
    constructor(props) {
        super(props);
        this.state = {
            events: [
                {
                    title: 'All Day Event',
                    start: '2017-05-01',
                    color: '#257e4a'
                },
                {
                    title: 'Long Event',
                    start: '2017-05-07',
                    end: '2017-05-10',
                    rendering: 'background'
                },
                {
                    id: 9,
                    title: 'Repeating Event  background',
                    start: '2017-05-09T16:00:00',

                    color: '#ff9f89',
                    textColor: 'red'
                },
                {
                    id: 99,
                    title: 'Repeating inverse-Event',
                    start: '2017-05-16T16:00:00',
                    rendering: 'inverse-background',

                },
                {
                    title: 'Conference',
                    start: '2017-05-11',
                    end: '2017-05-13'
                },
                {
                    title: 'Meeting',
                    start: '2017-05-12T10:30:00',
                    end: '2017-05-12T12:30:00'
                },
                {
                    title: 'Birthday Party',
                    start: '2017-05-13T07:00:00'
                },
                {
                    title: 'Click for Google',
                    url: 'http://google.com/',
                    start: '2017-05-28'
                }
            ],
        }
    }
    handleSelect = ({ start, end }) => {
        console.log('select', start, end);
        // const title = window.prompt('New Event name')
        // if (title)
        //   this.setState({
        //     events: [
        //       ...this.state.events,
        //       {
        //         start,
        //         end,
        //         title,
        //       },
        //     ],
        //   })
    }
    drop(args) {
        console.log('drop', args);
    }
    eventRecieve(args) {
        console.log('eventRecieve', args);
    }

    click(args) {
        console.log('click', args);
    }

    select(args) {
        console.log('select', args);
    }

    onDragStart = (ev, id) => {
        console.log('drag start', ev, id);
        ev.dataTransfer.setData("id", id);
    }

    onDragStop = (ev, id) => {
        console.log('on drag stop', ev, id);
        ev.dataTransfer.setData("id", id);
    }
    eventDragStart = (ev, id) => {
        console.log('drag start', ev, id);
        // ev.dataTransfer.setData("id", id);
    }

    eventDragResize = (ev, id) => {
        console.log('drag start', ev, id);
        // ev.dataTransfer.setData("id", id);
    }

    eventDragStop = (ev, id) => {
        console.log('drag Stop', ev, id);
        // ev.dataTransfer.setData("id", id);
    }
    render() {
        return (<div >

            <div>
                <div
                    key={1}
                    draggable
                    onDragStart={(e) => this.onDragStart(e, 1)}
                    onDragStop={(e) => this.onDragStop(e, 1)}
                    data-event='{ title: "my event", duration: "02:00" }'
                >
                    Drag Me
                </div>

            </div>
            <div>
                <FullCalendar
                    droppable={true}
                    plugins={[interactionPlugin, 'interaction', 'dayGrid', 'timeGrid', 'list']}
                    header={{
                        left: 'prev,next today myCustomButton',
                        center: 'title',
                        right: 'dayGridMonth,dayGridWeek,dayGridDay,timeGridWeek,timeGridDay'
                    }}
                    onDragStop={(e) => this.onDragStop(e, 1)}
                    defaultDate={'2017-05-12'}
                    navLinks={true} // can click day/week names to navigate views
                    editable={true}
                    nowIndicator={true}
                    selectable={true}
                    eventSelect={(args) => this.select(args)}
                    select={(args) => this.select(args)}
                    eventLimit={true} // allow "more" link when too many events
                    events={this.state.events}
                    eventClick={(args) => this.click(args)}
                    drop={(args) => this.drop(args)}
                    eventDragStart={(args) => this.eventDragStart(args)}
                    eventDragStop={(args) => this.eventDragStop(args)}
                    eventResize={(args) => this.eventDragResize(args)}
                    eventDrop={(args) => this.drop(args)}
                    eventReceive={(args) => this.eventRecieve(args)}
                />
            </div>
        </div>);
    }

}

const styles = {
    div: {
        margin: 10
    }
};

MyCalendar.propTypes = {
    children: PropTypes.node,
    classes: PropTypes.object.isRequired
};


export default withStyles(styles)(MyCalendar);

0 ответов

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