如何修复ReactSwing Api中被忽略的setState挂钩?

问题描述

我正在使用称为ReactSwing(https://github.com/ssanjun/react-swing)的库在React应用程序中设置类似滑动功能的控件,而我一直在使用功能组件示例https://github.com/ssanjun/react-swing/blob/master/Examples/index-hook.js。 Api正在运行,滑动功能看起来不错,但是由于无法访问堆栈功能,事实证明很难从卡座中添加删除卡。该示例说明了我使用这样的设置状态

 const [stack,setStack] = useState(null);

      //logging cards thrown
     const cardThrown = (targetCard) => {
       //logs stack
        console.log(stack);
      };

        <ReactSwing
                  className="stack"
                  setStack={(stack) => setStack(stack)}
                  throwout={cardThrown}
                >

尽管我知道它应该可以工作,因为setStack={(stack) => console.log(stack)}向我展示了

,该日志仍显示为空。
{getConfig: ƒ,getSpringSystem: ƒ,on: ƒ,createCard: ƒ,getCard: ƒ,…}
childElements: (4) [{…},{…},{…}]
createCard: ƒ (element,prepend)
destroyCard: ƒ (card)
getCard: ƒ (element)
getConfig: ƒ ()
getSpringSystem: ƒ ()
on: ƒ (eventName,listener)
__proto__: Object

我还建立了一个沙箱(https://codesandbox.io/s/sleepy-sunset-jqjst?file=/src/App.js),有可能帮助进一步解决这一难题,

更新:使用chrome中的react component工具,我可以看到状态已经更新,但是我无法使用API​​文档中建议的方法访问它,也无法通过控制台对其进行日志记录,因此无法解决为什么?

更新2:使用

useEffect(() => {
        console.log(stack)
      },[stack]);

告诉我它已经更新了usestate,但是滑动时的常规控制台日志仍然为空?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)