5

我将我的 App.js 文件包装在 withLDProvider 组件中,我想知道如何从我的 App 函数内部设置用户信息。

比方说,我在我的 App 函数中获取了缓存在 Dexie 中的用户名,如何在导出 App 函数时将该用户信息传递到设置用户详细信息的位置。

我已经可以获取我所有的用户信息,只是不确定我应该如何传递用户信息。我觉得我在这里采取了错误的方法,但不太确定该怎么做。

import React from 'react';
import './App.css';
import { withLDProvider } from 'launchdarkly-react-client-sdk';
import HelloWorld from './HelloWorld';

const App = () => {
  const [user, setUser] = useState({});

  // Let's say for example that I asynchronously get my
  // user information here and use hooks to set the user

  return (
    <div className="App">
      <header className="App-header">
        {
           user ? <HelloWorld  />
           : <div>A login screen would go here</div>
        }
      </header>
    </div>
  );
}

export default withLDProvider({
  clientSideID: 'client_id',
  user: {
    key: 'user_key',
    name: 'User Name',
    email: 'User@email.com'
  }
})(App);
4

1 回答 1

4

对任何更好的想法持开放态度,但这似乎目前可行

好像我设法错过了文档中的答案。

我最终做的是在没有用户的情况下初始化 LD,然后使用 identify() 函数在层次结构中将用户设置为低一级。它可以从传递给任何子组件的 ldclient 道具中获得。

ldclient.identify(newUser, hash, function() {
  console.log("New user's flags available");
});
于 2019-09-10T13:36:42.043 回答