我有如下的zustand的store:
// tabs.store.ts
interface TabsSlice {
tabs: [],
addTab: (tab: TabsWithBreadcrumbs[number]) => {},
removeTab: (key: string) => {},
}
export const createTabsSlice = (set:any, get:any): TabsSlice => ({
tabs: [
{ title: '简介', breadcrumbs: ['简介'], key: '000' },
],
addTab: (tab) => {
console.log('mmkk2: ', tab)
return set((state) => {
const newTabs = state.tabs.push(tab)
return newTabs
})
},
removeTab: (key: string) => {
return set((state) => {
const newTabs = state.tabs.filter(tab => tab.key !== key)
return newTabs
})
}
})
使用时候:
const { tabs, addTab, removeTab } = useStore();
...
<span
onClick={() => {
const tab = {
...
}
addTab(tab) // 点击的时候,第一次可以,但是第二次就报错
}
在点击span的时候,第一次都是正常的,第二次就报错:
Unhandled Runtime Error
TypeError: addTab is not a function
请问这个是怎么回事呢,第一次点击的时候都是可以正常点击的,为何第二次就报错?
我不会zustand;我只看 js
这样改吧