create 函数中的“a”参数是什么?

问题描述 投票:0回答:2

我已经开始学习 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”论点是什么以及为什么它会被传播。

zustand
2个回答
2
投票

...create() 中箭头函数的参数列表中的 a 表示该函数可以接受任意数量的参数,这些参数将被收集到一个名为 a 的数组中。

在 Zustand 库(React 的状态管理库)中用于定义存储的 create() 函数的上下文中,...a 意味着可以使用任意数量的调用 createBearSlice 和 createFishSlice 函数参数,并且他们都会收到相同的参数。

在这种情况下它将是[设置,获取]。


0
投票

您可以尝试以下示例代码:

// 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),
}));
© www.soinside.com 2019 - 2024. All rights reserved.