Javascript 如何修复在ReactSwing Api中被忽略的setState钩子?
我正在使用名为ReactSwing()的库在react应用程序中设置一个类似tinder的滑动功能,我一直在使用功能组件示例。Api正在运行,swipe函数看起来很棒,但是从卡片组中添加和删除卡片很困难,因为我无法访问stacks函数。该示例说明了我使用的设置状态,如下所示Javascript 如何修复在ReactSwing Api中被忽略的setState钩子?,javascript,reactjs,use-state,react-functional-component,Javascript,Reactjs,Use State,React Functional Component,我正在使用名为ReactSwing()的库在react应用程序中设置一个类似tinder的滑动功能,我一直在使用功能组件示例。Api正在运行,swipe函数看起来很棒,但是从卡片组中添加和删除卡片很困难,因为我无法访问stacks函数。该示例说明了我使用的设置状态,如下所示 const [stack, setStack] = useState(null); //logging cards thrown const cardThrown = (targetCard) =&
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}
>
我还设置了一个沙盒()来帮助进一步解决这个问题,提前谢谢
更新:使用chrome中的react组件工具,我可以看到状态实际上已经更新了,但我无法使用API文档中建议的方法访问它,也无法使用控制台日志访问它,我也无法找出原因
更新2:使用
useEffect(() => {
console.log(stack)
}, [stack]);
向我显示它已更新usestate,但刷卡时的常规控制台日志仍然为空?您可能应该调用某些更改函数上的setstack,该函数可能在ReactSwing中可用,库提供的所有更改函数都是刷卡事件,必须在刷卡事件之前定义堆栈以触发某些事件,如销毁卡。根据文档,这是正确的方法setStack是一个ReactSwing函数,正如您在我上传的图像中看到的,它确实更新了状态,我无法访问它。
useEffect(() => {
console.log(stack)
}, [stack]);