0

我正在尝试向 LaunchDarkly 用户添加一个属性,并在后续重新加载时检索它。

这是一个简化的示例:

import { withLDProvider } from 'launchdarkly-react-client-sdk';
export default withLDProvider({
  clientSideID: 'your-client-side-id',
  user: {
    "key": "abc",
  },
  options: { /* ... */ }
})(YourApp);

const YourApp = () => {
  const client = useLDClient();
  useEffect(() => {
    if (client) {
      const user = client.getUser();
      
      // Expectation: logs "{ key: 'abc' } on first load,
      // and "{ key: 'abc', firstName: 'Evan' }" on subsequent reloads
      console.log('Received', user);

      const updatedUser = { ...user, firstName: 'Evan' };
      client.identify(updatedUser);
    }
  }

  ...
}

我看到的是重新加载页面后,没有检索到“firstName”属性。

预期的:

  • 第一次加载:Received { key: 'abc' }
  • 第二次加载:Receieved { key: 'abc', firstName: 'Evan' }

现实:

  • 第一次加载:Received { key: 'abc' }
  • 第二次加载:Received { key: 'abc' }

我误解了getUser()应该做什么吗?

我的理解是调用identify()应该更新用户配置文件。我认为在随后getUser()使用相同的调用中key,我应该取回firstName调用时添加的内容,identify()但这不是我所看到的。

我已经阅读了所有文档,但我不知道这是否是预期的行为,或者我做错了什么。

我正在使用 React 客户端 SDK(“launchdarkly-react-client-sdk”:“^2.22.2”)

4

0 回答 0