Zustand存储空数组时调用setJobs报错:无法访问length属性
使用Zustand维护jobs列表时,空数组更新报错问题
我用Zustand维护一个jobs列表存储,当用新选中内容更新该列表时,原jobs已有值时正常工作,但原列表为空数组时会报错:can't access property "length", prevDeps is undefined。
调用setJobs的代码
createUserJob({ variables: { input: { user_id: id, job_id: filteredJobId || submitJobId } } }).then((response): void => { console.log('response', response.data); const { createUserJob } = response.data; if (createUserJob) { // eslint-disable-next-line @typescript-eslint/no-explicit-any const newJob = createUserJob.map((job: any) => ({job_id:job.job_id})); console.log('newJob', newJob); //setNewJob(newJob); setJobs(newJob); } setWishListJob([]); });
Zustand存储调用方式
const [jobs, setJobs] = userDataStore((state) => [state.jobs || [], state.setJobs]);
空数组时console.log显示内容:
Array [] length: 0 <prototype>: Array []
我尝试过以下方案,但仍出现该报错:
- 在state.jobs后加
|| [] - 初始将jobs设为
[{ job_id: 0}] - 使用useEffect设置存储
- 判断jobs.length后再调用setJobs
内容的提问来源于stack exchange,提问作者Alyweb
相关产品推荐
相关产品推荐

