我正在使用Statsig React sdk检查门,如果门返回true,则显示一些UI。当我使用通过门的用户ID进行初始化时,一切都按预期工作,并且呈现UI。
我遇到的问题是调用Statsig.updateUser时无法更改UI。这是一个bug还是我做错了什么?
我有一个测试门设置,以通过一个特定的用户ID(“用户通过”)。
以下是我可以重现此问题的最基本设置。
function Test() {
return (
<>
<button
onClick={() => Statsig.updateUser({ userID: "user-that-passes" })}
>
Update
</button>
<p>{Statsig.checkGate("test_gate") ? "Pass" : "Fail"}</p>
</>
);
}
function App() {
return (
<StatsigProvider
sdkKey="intentionally blank"
user={{ userID: "user-that-fails" }}
waitForInitialization={true}
>
<Test />
</StatsigProvider>
);
}
如果我单击调用Statsig.updateUser的按钮,什么也不会发生,并且gate仍然失败。
有人能帮我吗?
谢谢
1条答案
按热度按时间d5vmydt91#
很遗憾听到你有问题。
当用户对象发生变化时,我们会自动调用updateUser,目的是使用
useState(..)
保留一个用户对象,并在需要触发更新时更新该状态。这在www.example.com的文档中有概述https://docs.statsig.com/client/reactSDK#updating-the-statsiguser
我们还在开发一个钩子来更新用户,以帮助澄清围绕这个问题的困惑,它应该在下一个版本中。
如果这不能解决您的问题,请告诉我,我可以帮助您进一步挖掘。