在Zustand中可以订阅某个州的某些部分吗?



目前,当更改组件中的状态时,我将状态订阅到一个存储中,当我调用的函数结束时,该存储会更新。我这样做:

useAirQualityStore.getState().updateAirQuality();
...
this.state = useAirQualityStore.subscribe(state => this.setState(state));

然而,当我在一个需要使用多个存储的屏幕上工作时,我有更多的参数,不能设置整个状态。我是否可以订阅我的状态的某些参数来侦听存储中的变化?

我的想法是,这将以某种方式在以前的状态传递,但它似乎有点混乱:

useWeatherStore.subscribe(console.log, state => this.setState(prevState => {
return {
...prevState,
forecast: state.dailyForecast,
weatherIsLoading: state.forecast.isLoading
}
}));

有更好的方法吗?

在Zustand中,您可以向多个存储订阅组件状态。值和参数只是附加到相同的状态。例如,

this.state = useWeatherStore.subscribe(state => this.setState(state));
this.state = useAirQualityStore.subscribe(state => this.setState(state));

这将把'useWeatherStore'和'useAirQualityStore'中的数据附加到' This .state'。它似乎会相应地更新。

相关内容

  • 没有找到相关文章

最新更新