React Swiper 子组件无法更新父组件的状态



我正在使用Swiper进行React,并尝试实现全页面滑动。此处的CodeSandbox:https://codesandbox.io/s/nested-full-page-swiping-8i7sv

基本上,当你向左或向右滑动幻灯片A或C时,它应该禁用垂直滑动,并且只有当你在任何一行的幻灯片B上时才应该启用。

由于某种原因,我的父组件的状态在被onSlideChange事件触发时没有正确更新。我尝试过其他事件,如onSlideChangeTransitionEnd,但vertSwipe状态没有正确更新。

我以前用与其他一些组件完全相同的方式做过这件事,所以我不完全确定为什么在这种情况下,更新父组件状态的子组件不起作用。我尝试过将状态设置器封装在一个函数中,然后传递该函数,但这似乎也不起作用。

感谢您的帮助,谢谢。

此处的代码沙盒演示。

我设法使它工作起来。子Swiper基本上会用swiper.enable()swiper.disable()击中父Swiper。我相信这是完成这项工作的最具性能的方式,因为这不会触发重新渲染,而且实际上效果非常优雅。

最新更新