1、sessionStorage同一个网页下共享还是不共享
不同标签页之间的sessionStorage共享还是不共享,取决于操作方式,如果在同一个网站下,新标签页是从a页面发起创建并跳转的,新标签页跟a页面是共享sessionStorage的。如果新标签页是用户自己创建并输入网址进行跳转的,会初始化一个新的session,即使同一个网页下,他们也不共享sessionStorage。
2、子组件被connect高阶组件包裹,父组件用ref拿取不到其实例
1)当react-redux < 6
子组件使用withRef:true
connect(mapStateToProps, mapDispatchToProps, null ,{withRef:true})(ExampleComp)
父组件取值的时候,一定加上getWrappedInstance(),才能调取子组件的实例
this.aRef.current.getWrappedInstance().value
2)当react-redux > 6
子组件使用forwardRef:true
connect(mapStateToProps, mapDispatchToProps, null ,{forwardRef:true})(ExampleComp)
父组件取值
this.aRef.current.value
3、接口返回流文件时,前端怎么触发下载并不乱码
以下代码可以触发下载
fetchExcel().then(res => {
const a = document.createElement('a'); // 创建a标签
const blob = new Blob([res], {
type: 'application/vnd.ms-excel;charset=UTF-8',
}); // 拿取接口的流数据
a.style.display = 'none';
a.href = URL.createObjectURL(blob); // 创建新的URL表示指定的blob对象
a.download = riskTenant + '模板' + '.xls'; // 指定下载文件名
a.click(); // 触发下载
URL.revokeObjectURL(a.href); // 释放URL对象
})
下载文件打开excel会出现乱码,在请求的config中设置responseType:‘blob’