我已经开始学习 Zustand 并且正在查看文档。我正在阅读有关将商店分成多个部分的内容,就像在 Redux 中一样,但并不完全理解网站上共享的代码。代码来自此网站。
此页面上有以下代码块:
import { create } from 'zustand'
import { createBearSlice } from './bearSlice'
import { createFishSlice } from './fishSlice'
export const useBoundStore = create((...a) => ({
...createBearSlice(...a),
...createFishSlice(...a),
}))
我不明白create函数中的“a”参数是什么。我知道在创建新商店时我们可以将“set”和“get”参数传递给create()。但是,无法弄清楚这个“a”论点是什么以及为什么它会被传播。
...create() 中箭头函数的参数列表中的 a 表示该函数可以接受任意数量的参数,这些参数将被收集到一个名为 a 的数组中。
在 Zustand 库(React 的状态管理库)中用于定义存储的 create() 函数的上下文中,...a 意味着可以使用任意数量的调用 createBearSlice 和 createFishSlice 函数参数,并且他们都会收到相同的参数。
在这种情况下它将是[设置,获取]。
您可以尝试以下示例代码:
// bearSlice.js
export const createBearSlice = (set, get) => ({
bears: 0,
increase: () => set((state) => ({ bears: state.bears + 1 })),
});
// fishSlice.js
export const createFishSlice = (set, get) => ({
fish: 0,
increase: () => set((state) => ({ fish: state.fish + 1 })),
});
// store.js
import { create } from 'zustand';
import { createBearSlice } from './bearSlice';
import { createFishSlice } from './fishSlice';
export const useBoundStore = create((...a) => ({
...createBearSlice(...a),
...createFishSlice(...a),
}));