在我的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锚元素中。