Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema con state in react

    ciao!

    ho un problema con un cambio di state in react.
    il problema riguarda la modalità di visualizzazione di fullcalendar.

    vi posto un pò di codice:
    codice:
    const [initialView, setInitialView] = useState('timeGridDay');
    const {innerWidth} = window;
    const [leftCalendar, setLeftCalendar] = useState('prevYear,prev,next,nextYear today');
    
    useEffect(() => {
        if (innerWidth < 500) {
            console.log(innerWidth);
            setInitialView('timeGridWeek');
            setLeftCalendar('prev,next today');
        } else {
            // setInitialView('timeGridDay');
            setInitialView('dayGridMonth');
        }
    }, []); // eslint-disable-line react-hooks/exhaustive-deps
    
    <FullCalendar
        firstDay={1}
        height={600}
        events={events}
        eventClick={eventClick}
        initialDate={getToday()}
        initialView={initialView}
        plugins={[dayGridPlugin, timeGridPlugin, interactionPlugin]}
        headerToolbar={{
            left: leftCalendar,
            center: 'title',
            right: 'dayGridMonth,timeGridWeek,timeGridDay'
        }}
        editable
        selectable
        selectMirror
        dayMaxEvents
    />
    praticamente:
    - innerWidht mi dice 480, quindi rientra nella if
    - setLeftCalendar funziona correttamente, quindi rientra nella if
    - ma la visualizzazione rimane quella iniziale

    qualche idea??

  2. #2
    niente, mi si è accesa la lampadina subito dopo aver inviato.

    il parametro initialView vuole una stringa.

    quindi ho creato questa funzione e gliel'ho passata:
    codice:
    function setInitialView(): string {
        if (innerWidth < 500) {
            return 'timeGridWeek';
        } else {
            return 'dayGridMonth';
        }
    }

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da fermat Visualizza il messaggio
    niente, mi si è accesa la lampadina subito dopo aver inviato.

    il parametro initialView vuole una stringa.

    quindi ho creato questa funzione e gliel'ho passata:
    codice:
    function setInitialView(): string {
        if (innerWidth < 500) {
            return 'timeGridWeek';
        } else {
            return 'dayGridMonth';
        }
    }
    grazie per aver condiviso
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.