在条件语句中使用会话存储



在我的React应用程序的会话存储websiteData对象中,我尝试访问以下值:

websiteData:
conf: type1,
configuration: 
linkBackSite: "https://www.webste.com/somePath/"

我创建了一个函数,该函数应该首先查找会话存储项conf,如果该项匹配,则从配置中返回URL字符串。

之后,我将函数传递到按钮的onClick事件中,该事件会将用户返回到相对URL:

const returnToEnv = () => {
const getConfiguration = sessionStorage.getItem('conf');
console.log('getConfiguration', getConfiguration);
if (getConfiguration === 'type1') {
return JSON.parse(
sessionStorage.getItem('configuration', 'linkBackSite')
);
} else {
console.log('no');
}
};

<button className="active" onClick={returnToEnv}>
{i18next.t('CONFIRMATION.return')}
</button>

当我点击按钮时,没有发生任何事情,控制台日志返回null。访问sessionStorage对象内部的这些项并在onClick事件中使用返回的对象的正确方法是什么?

一旦我了解了配置,解决方案就更容易了:

const websiteData = JSON.parse(
sessionStorage.getItem('websiteData')
);
const linkBackSite = websiteData.configuration.linkBackSite;
<a href={linkBackSite} alt="">
{i18next.t('CONFIRMATION.return')}
</a>

在调用了const websiteData中的主对象之后,我返回了const linkBackSite中的特定密钥。

由于它指向一个预先配置的公共URL,所以我删除了onClick事件,并将其直接放在HTML锚元素中。

最新更新