2017-04-05 39 views
5

Używam pełno-kalendarza jQuery na komponencie ReactJs.jQuery fullCalendar wyświetlany undefined pod tytułem

mam <div id="calendar"></div> na sposób renderowania

i componentDidUpdate, i aktualizowany kalendarz z następujących kodów:

$('#calendar').fullCalendar({ 
header: { 
    left: 'prev,next today', 
    center: 'title', 
    right: 'month,agendaWeek,agendaDay' 
}, 

events: _this.state.events, 
defaultView:'month', 
displayEventTime: false, 
editable: false, 
droppable: false, 
durationEditable: false 
}); 

i to widać „nieokreśloną” postać w tytule. gdzie popełniłem błąd? i jak debugować skąd pochodzi niezdefiniowany ciąg?

jquery full calendar

obecnie zrobiłem hakera rozwiązanie, aby usunąć wszystkie niezdefiniowanej ciąg z tytułu przez dodanie poniższych informacji:

viewRender: function(view, element) { 
//note: this is a hack, i don't know why the view title keep showing "undefined" text in it. 
//probably bugs in jquery fullcalendar 
$('.fc-center')[0].children[0].innerText = view.title.replace(new RegExp("undefined", 'g'), ""); ; 

}, 

Czy istnieją jakieś lepsze rozwiązanie?

używam jQuery FullCalendar v2.9.1

z następujących przykładowych danych na temat zdarzeń:

[{"start":"2017-03-24T00:00:00.000Z","end":"2017-03-26T00:00:00.000Z","title":"Open house","description":"Bali 1 open house"}] 

uwaga: skończyło się dumping jQuery pełny kalendarz na rzecz reagowania-big- kalendarz.

+0

czy pojawiają się błędy w konsoli przeglądarki, gdy pojawia się niezdefiniowana wiadomość? I czy ustawiłeś tytuł w dowolnym miejscu? https://fullcalendar.io/docs/text/titleFormat/ Jeśli tak, upewnij się, że podany format jest prawidłowy. – ADyson

+0

brak błędów na konsoli. i jest to mały komponent. użyłem go tylko do wyświetlania kalendarza, więc nadal nie w formacie tytułu. Próbowałem ustawić go na titleFormat: "MMMM YYYY", ale bez powodzenia .. nie ma pojęcia, jak debugować tytuł. –

+0

czy działa dobrze, jeśli używasz go poza kontekstem ReactJS? – ADyson

Odpowiedz

1

Miałem ten sam problem po aktualizacji fullCalendar, wziąłem trochę do odkrycia, ponieważ przez prawie rok wszystko działało dobrze i uaktualniłem fullCalendar w przeszłości bez żadnych problemów, z jakiegoś powodu musiałem uwzględnić moment.js na stronie, na której korzystałem z fullCalendar, zobacz Prowadzę witrynę MVC, a wcześniej strona wzorcowa (_layout.cshtml) odwoływała się do moment.js, nie wiem teraz, dlaczego to już nie działa, tak jak test dodałem odniesienie do moment na aktualnej stronie Używam fullCalendar, a undefindundefined odeszło, podobnie jak inny problem z wydarzeniami.

W moim przypadku było fix:

@Scripts.Render("~/bundles/dates") 

w twoim przypadku może to być po prostu:

<script src='//cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js'></script> 
+0

Dodałem fullcalendar w wersji z instalacją npm. W jaki sposób mogę włączyć "moment.js"? W Vue, może używając 'import 'moment''? (Ten nie działa). –

-2

znalazłem używając fullcalander.js zamiast fullcalendar.min.js stałe ten problem mnie. Nie zbadałem jednak, dlaczego.

-1

Prawdopodobnie problem z lokalizacją. Miałem ten sam problem, co przy korzystaniu z pt-br.

Rozwiązałem kopalni poprzez usunięcie linii

<script src='../fullcalendar.min.js'></script>

i pozostawiając

<script src='../fullcalendar.js'></script>

+0

Wygląda na to, że część Twojej odpowiedzi została nieumyślnie usunięta, możesz edytować odpowiedź, abyśmy mogli zobaczyć całą odpowiedź. –

0

skończyło się dumping jQuery pełny kalendarz na rzecz reagowania-big-kalendarza. jQuery nie gra dobrze z reakcją.

1

Miałem ten sam problem po aktualizacji fullCalendar.js z wersji 2.2.1 do wersji 3.4.0

W moim przypadku Problem rozwiązany poprzez uwzględnienie fullcalendar.js & scheduler.min.js po moment.js

1

Mam ten sam problem z fullcalendar v3.4.0 i fullcalendar-scheduler v1.6.2 w ramach składnika Angular2. Zmieniłem wersję na ostatnio działającą wersję fullcalendar v3.1.0. Ten problem wydaje się być wprowadzony powyżej fullcalendar v3.2.0

+0

Zrobiłem to również dla mnie, ale potem w Vue. –