我正在尝试向 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”)