如何使用MobX obervables来使第三方React组件(FullCalendar)呈现?

问题描述 投票:0回答:1

[我正在尝试使用useContext钩子将FullCalendar React组件与我自己的功能性React组件包装在一起,以访问MobX存储(我可能最终会在其他组件中使用该存储),然后单击observer()以使其对存储中的更改做出反应。我的组件做出了预期的反应,但是在更改后使FullCalendar组件呈现时遇到了麻烦。

[我尝试过寻找解决方案,将<FullCalendar>包装在<Observer>中,同时使用autorun()reaction(),但没有任何效果。我必须缺少一些东西

此沙箱https://codesandbox.io/s/mobx-fullcalendar-xejn9显示了到目前为止我的解决方案的简化版本。

单击顶部的按钮会将事件添加到可观察的商店,该事件将显示在其下方的列表中。但是日历不显示新事件。如果我更改了代码,将其保存起来,这很奇怪,CodeSandbox会导致渲染和事件显示在日历中。

fullcalendar mobx mobx-react-lite
1个回答
0
投票
由于@ADyson,我找到了解决方案。而不是将事件的静态列表传递给FullCalendar组件

events={store.events}

我可以传递事件获取功能。因此,在最简单的情况下,我可以将事件从商店传递给successCallback函数,它就可以工作。

events={(fetchInfo, successCallback, failureCallback) => { successCallback(store.events); }}

我也更新了CodeSandbox https://codesandbox.io/s/mobx-fullcalendar-xejn9
© www.soinside.com 2019 - 2024. All rights reserved.