首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >最佳对象无效。失败的isFeatureEnabled

最佳对象无效。失败的isFeatureEnabled
EN

Stack Overflow用户
提问于 2020-03-30 17:29:08
回答 1查看 2.9K关注 0票数 5

尝试将React和JavaScript SDK用于最优,但在控制台中获得以下错误:

代码语言:javascript
运行
复制
OPTIMIZELY: Optimizely object is not valid. Failing isFeatureEnabled.

有关我的设置的更多信息如下:

通过纱线安装:yarn add @optimizely/react-sdk

app容器中的导入语句:

代码语言:javascript
运行
复制
import {
  createInstance
} from '@optimizely/react-sdk'

渲染功能中的逻辑:

代码语言:javascript
运行
复制
const optimizely = createInstance({
  sdkKey: '<SDK_KEY>',
})

const enabled = optimizely.isFeatureEnabled('example_feature', 'user123');

我在Chrome控制台中得到了这个错误:

代码语言:javascript
运行
复制
OPTIMIZELY: Optimizely object is not valid. Failing isFeatureEnabled.
EN

回答 1

Stack Overflow用户

发布于 2020-03-30 17:29:08

在SDK成功加载项目的数据文件之前,当调用数据文件时,Optimizely对象将记录该错误。这种情况的发生有以下几个原因。看看问题中提供的代码示例,似乎第4条是导致错误的最可能原因,但以下是所有这些原因:

1.坏SDK密钥

如果您将一个坏的SDK键传递给createInstance,SDK将无法成功地加载数据文件,您将得到此错误。

代码语言:javascript
运行
复制
const optimizely = createInstance({
  sdkKey: 'invalid-sdk-key'
})

2.格式错误的数据文件

如果直接将数据文件传递给createInstance,但传入的对象不是正确的数据文件格式,则会得到以下错误:

代码语言:javascript
运行
复制
const optimizely = createInstance({
  datafile: { wrong: 'format' }
})

3.不可访问的数据文件

确保可以在web浏览器:https://cdn.optimizely.com/datafiles/<Your_SDK_Key>.json中访问数据文件的url。如果您收到一个AccessDenied (403)或Not Found (404)错误,并且您的帐户是新的,请确保您在Optimizely中创建了一些内容,这样就可以触发Optimizely来创建和上传一个正确的数据文件。

如果在运行中的应用程序的控制台中,您看到了对数据文件的请求的403404,请确保不存在阻止SDK从SDK上在Optimizely的CDN上请求数据文件的ad-阻止程序、防火墙或代理。

4.不等待Optimizely SDK准备好

即使您拥有正确的SDK键,并且SDK可以访问Optimizely的CDN。如果您没有给SDK足够的时间来完成数据文件请求,那么您将在SDK准备好之前尝试使用它。

在JavaScript SDK中,可以通过使用onReady方法来解决这个问题:

代码语言:javascript
运行
复制
const optimizely = createInstance({
  sdkKey: 'valid-sdk-key',
});

optimizely.onReady().then(() => {
  // optimizely is ready to use, with datafile downloaded from the Optimizely CDN
});

如果使用React的<OptimizelyFeature>组件,那么<OptimizelyFeature>组件将自动等待,直到<OptimizelyProvider>成功地加载了数据文件之后才计算isFeatureEnabled

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60936096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档