在我的React应用程序中,我使用的是FullCalendar. io,关于设置Loading状态的文档有点少(而且不是React专用的):https://fullcalendar.io/docs/loading
如果我有:
const [loading, setLoading] = useState(false)
...
{loading ? <Spinner /> : null}
<FullCalendar
plugins={[ dayGridPlugin ]}
initialView="dayGridMonth"
loading={e => setLoading(e)} // With this line, it continually reloads the data source
eventSources={[{
url: '/api/calendar',
method: 'GET',
}]}
/>
如果我注解掉上面的加载行,它会很好地工作,但是如果我想在加载时触发一个指示器,它会将数据加载置于一个无限循环中。
这就像每当有什么变化,日历重新获取数据。如果我这样做,它会做同样的事情:
loading={loadingFunction}
以及:
function loadingFunction (boolean) {
setLoading(boolean)
}
注意,如果我使用initialEvents,**它不会这样做,**但它提供的灵活性较低。(然后加载按预期工作。)但是使用events或eventSources,它会将其放入加载循环中。
1条答案
按热度按时间ldioqlga1#
似乎将其 Package 在useCallback中:
并将FullCalendar Package 在useMemo中:
解决了这个问题。希望我没有发现任何缺点...