Sieht so aus, als könnten Sie benutzerdefinierte Komponenten für die reaktive Kalenderkomponente erstellen. Ich schaute auf dieses Beispiel:Reagieren großen Kalender, Bootstrap Popover Ereignis hinzufügen?
https://github.com/intljusticemission/react-big-calendar/blob/master/examples/demos/customView.js.
Es ist jedoch nicht klar, wie eine benutzerdefinierte Ereigniskomponente erstellt wird. Ich bin auch durch die Dokumentation sah, aber es gibt keine expliziten Beispiele:
http://intljusticemission.github.io/react-big-calendar/examples/index.html#prop-components
Ich bin besonders daran interessiert, einen Tooltip für jedes Ereignis zu schaffen, die eine detailliertere Beschreibung der Ereignisse zeigt.
Kann jemand auf ein Beispiel verweisen, wo jemand eine benutzerdefinierte Komponente für react-big-calendar erstellt hat?
UPDATE: Hier ist ein Bild des Kalenders und einige Ereignisse in der Monatsansicht gerendert. Ich denke, eine benutzerdefinierte Veranstaltung sollte auf jeden Fall das 'rbc-event' und 'rbc-event-content' beinhalten. Um die Bootstrap-Werkzeugspitze hinzufügen Ich bin in der benutzerdefinierten Ereigniskomponente in etwa so zu denken:
Und hier ist, wo das Ereignis Zellkomponente in der Reaktion-big-Kalender Quellcode erstellt wird.
return _react2.default.createElement(
'div',
_extends({}, props, {
style: _extends({}, props.style, style),
className: (0, _classnames2.default)('rbc-event', className, xClassName, {
'rbc-selected': selected,
'rbc-event-allday': isAllDay || _dates2.default.diff(start, _dates2.default.ceil(end, 'day'), 'day') > 1,
'rbc-event-continues-prior': continuesPrior,
'rbc-event-continues-after': continuesAfter
}),
onClick: function onClick() {
return onSelect(event);
}
}),
_react2.default.createElement(
'div',
{ className: 'rbc-event-content', title: title },
Component ? _react2.default.createElement(Component, { event: event, title: title }) : title
)
);
}
});
exports.default = EventCell;
module.exports = exports['default'];
Ich beschloss, die EventCell Komponente versuchen erstreckt, wenn ich es in als Stütze Event-Komponente übergeben, wird das Ereignis nicht mehr über Inhalte. Nicht sicher, wie Ereignisdetails in das Ereignis 'rcb-event' innerhalb der EventCell-Komponente übergeben werden. Siehe unten ..
import React, { PropTypes } from 'react';
import MyCalendar from '../components/bigCalendar';
import _ from 'lodash';
import EventCell from 'react-big-calendar/lib/EventCell.js';
class MyEvent extends React.Component {
constructor(props){
super(props)
}
render(){
return (
<div className="testing">
<EventCell />
</div>
);
}
}
let components = {
event: MyEvent
}
Hier bin ich vorbei die Komponenten Objekt ich nur auf die MyCalendar Präsentationskomponente erstellt unten:
export default class Calendar extends React.Component {
constructor(props) {
super(props);
var eventsList = Object.keys(props).map(function(k){
return props[k];
});
eventsList.map(function(event){
event["start"] = new Date(event["start"])
event["end"] = new Date(event["end"])
})
this.state = {
events: eventsList
};
};
render() {
return (
<div>
<MyCalendar components={components} events={this.state.events}/>
</div>
);
}
}
Und schließlich die Komponenten Objekt über Requisiten auf die Präsentationskomponente übergeben. Was in der Ansicht erfolgreich gerendert wird, aber wie gesagt - ohne Inhalt.
const MyCalendar = props => (
<div className="calendar-container">
<BigCalendar
selectable
popup
components={props.components}
views={{month: true, week: true, day: true}}
events={props.events}
onSelectEvent={event => onSelectEvent(event)}
eventPropGetter={eventStyleGetter}
scrollToTime={new Date(1970, 1, 1, 6)}
defaultView='month'
defaultDate={new Date(2015, 3, 12)}
/>
</div>
);
MyCalendar.propTypes = {
events: PropTypes.array.isRequired,
components: PropTypes.object.isRequired
};
Scheint, dass ich über diese andere Weise gehen soll ... Irgendwelche Vorschläge?
Fragen fragen uns ** empfehlen oder ein Buch, Werkzeug, Software-Bibliothek, Tutorial oder andere Off-Site-Ressourcen sind off-topic ** für Stack Overflow, da sie dazu neigen, eigensinnige Antworten und Spam zu bekommen. Beschreiben Sie stattdessen das Problem und was bisher unternommen wurde, um es zu lösen. – Makyen
Ich habe einige Dinge hinzugefügt, die ich ausprobiert habe - wäre toll, wenn du einen Blick darauf werfen könntest – matthewalexander
"Kann jemand auf ein Beispiel verweisen, wo jemand eine benutzerdefinierte Komponente für react-big-calendar erstellt hat?" stellt die Frage off-topic (das Anfordern von Zeigern zu externen Ressourcen ist speziell nicht am Thema: [help/on-topic]). Es wäre gut, es zu entfernen. Im Allgemeinen ist es vorzuziehen, Informationen (Code, Fehler usw.) in die Frage im Textformat im Gegensatz zu Bildern aufzunehmen. Ein Bild ist besser als nichts, aber Text lässt es kopieren oder durchsuchen. Ein Bild kann eine gute Idee sein (sogar zusätzlich zu Text), wenn es zusätzliche Informationen liefert. Grundsätzlich: Text >>> Bild >>>>>>>> nichts. – Makyen