ZUSTAND设置状态回调函数

atmip9wb  于 2022-09-21  发布在  React
关注(0)|答案(1)|浏览(187)

我只是想知道是否有一种方法可以像Reaction Like中的setState函数一样使用zuStand.setState函数。

useStore().setState({ stateOne: (prevState) => ({ ...prevState, newProperty: 'value' })

目前,使用setState的唯一方法是:

useStore().setState({ stateOne: { newProperty: 'value' })

谢谢。

kyvafyod

kyvafyod1#

是的,你可以做到的。Zustand还接受函数作为setState的参数。

import create from 'zustand'

const useFooBar = create(() => ({ foo: new Map(), bar: new Set() }))

function doSomething() {
  // doing something...

  // If you want to update some React component that uses `useFooBar`, you have to call setState
  // to let React know that an update happened.
  // Following React's best practices, you should create a new Map/Set when updating them:
  useFooBar.setState((prev) => ({
    foo: new Map(prev.foo).set('newKey', 'newValue'),
    bar: new Set(prev.bar).add('newKey'),
  }))
}

在这里,您可以参考ZUSTAND文档:https://docs.pmnd.rs/zustand/guides/maps-and-sets-usage

相关问题