Reactjs 在以暗方式启动时更改特征标志值后,如何在react应用程序中反映更新的数据

Reactjs 在以暗方式启动时更改特征标志值后,如何在react应用程序中反映更新的数据,reactjs,runtime,launchdarkly,Reactjs,Runtime,Launchdarkly,我正在更改launch darkly仪表板中的功能标志值,更新的标志数据在应用程序中没有得到反映。我们需要刷新应用程序或在“新建”选项卡中打开以查看更新的结果我最近使用React&launch darkly设置了此选项。为此,我们做了两件事: 使用('change')上的订阅launch darkly客户端的更改 使这些更新触发react组件重新渲染(道具、状态或钩子更改将执行此操作,就像我们通过redux所做的那样) 黑暗地看发射 从那里,您的组件可以连接到redux,当标志在redux中更新

我正在更改launch darkly仪表板中的功能标志值,更新的标志数据在应用程序中没有得到反映。我们需要刷新应用程序或在“新建”选项卡中打开以查看更新的结果

我最近使用React&launch darkly设置了此选项。为此,我们做了两件事:

  • 使用('change')上的
    订阅launch darkly客户端的更改
  • 使这些更新触发react组件重新渲染(道具、状态或钩子更改将执行此操作,就像我们通过redux所做的那样)
  • 黑暗地看发射

    从那里,您的组件可以连接到redux,当标志在redux中更新时,您的组件将被传递新的标志道具,从而触发重新渲染

    如果用其他方法将标志props/state传递给组件,那么同样的想法也可以实现

    import * as LDClient from 'launchdarkly-js-client-sdk';
    
    ...
    
    // where you initialize the sdk 
    ldclient = LDClient.initialize(LAUNCH_DARKLY_CLIENT_ID, user);
    
    // set featureFlags in redux when ld client is ready
    ldclient.on('ready', () => {
      const flags = ldclient.allFlags();        // get the flags
      dispatch(actions.setFeatureFlags(flags)); // store them in redux
    });
    
    // *the part you're asking about*
    // on('change') to subscribe to flag changes
    ldclient.on('change', () => {
      // you could listen for the specific flag change, but can also just grab all flags whenever there is a change
      const flags = ldclient.allFlags();
      dispatch(actions.setFeatureFlags(flags));
    });