数据初始化时为空,data.value报错的解决办法(验证)
一劳永逸解决第一次渲染为空渲染问题,方法头部判断后return null
if (data.length == 0) { return null; } 或者array.isArray()
const AAA=useMemo(()=>{return },[data])//常用useMemo进行初始化赋值,再最小的损失下刷新组件
因为react页面渲染的时候会渲染两次,第一次时如果不给初始值则为null,一般都给数据初始值为[] 或null
此时如果页面代码有涉及到 data.数组里的键。 则会报错
解决办法有:
常用:?? .? ||[] ||{} 等
其次:
数据初始化是一般都为[] (不论数据为什么类型,初始化时都是空数组),此时可以使用数组的方法array.length//0
如果数据为对象集合,则可用(array.length)来判断是否渲染//如果为数组则可通过(array.length==0) //来判断
const newData = useMemo(() => { console.log(active); return data?.[active] || []; }, [data, active]);
一种是使用map(),如果数组为空则map方法不会执行,所以内部调用value值也不会报错
map((item,index)=>{ return item.value })
respTimeData.map((item, index) => { respSeriesData.push({ name: item.name, type: 'line', yAxisIndex: 1, smooth: true, showSymbol: false, showAllSymbol: true, symbolSize: 0, symbol: 'circle', label: { show: false }, itemStyle: { color: '#C830F2', }, lineStyle: { width: 5, }, data: item.value, }); });

浙公网安备 33010602011771号