讲解
key参数是projectJson,value参数是一个包含一些项目信息的JavaScript对象。这些项目信息来自变量el,其中el是在当前作用域中定义的某个对象。
<Button
type="primary"
className={styles.xxx}
onClick={() => {
window.sessionStorage.setItem(
'projectJson',
JSON.stringify({
id: el.project.id,
projectName: el.project.projectName,
projectType: el.project.projectType,
pushMode: el.project.pushMode,
}),
);
history.push('xxxxx');
}}
>
将el对象中的project.id、project.projectName、project.projectType和project.pushMode属性提取出来,并将它们存储为projectJson的值。
为了将对象转换为字符串,使用了JSON.stringify()方法。
import { history } from ‘umi’;
调用history.push(‘/xxxxx’)将用户重定向到路径为/xxxxx的页面。
因此,当用户点击元素时,会执行上述代码逻辑,将项目信息存储到会话存储中,并将用户重定向到’/xxxxx’页面。这个页面可能是项目的详细信息页面或者其他与项目相关的页面。
{JSON.parse(window.sessionStorage.getItem('projectJson') as any).projectName}
//多加undefined判定
const projectType = window.sessionStorage.getItem('projectJson') && JSON.parse(window.sessionStorage.getItem('projectJson') as any)?.projectType || '1';
<div className={projectType && Number(projectType) === 2 ? styles.projectDetail_banner2 : styles.projectDetail_banner1}></div>