如何解决您可以订阅 Zustand 中某个州的某些部分吗?
目前,当更改组件中的状态时,我会将状态订阅到一个存储区,该存储区在我调用的函数完成时更新。我这样做:
useAirQualityStore.getState().updateAirQuality();
...
this.state = useAirQualityStore.subscribe(state => this.setState(state));
但是,当我在需要使用多个商店的屏幕上工作时,我有更多的参数并且无法设置整个状态。我可以订阅我的 state 的某些参数来监听 store 的变化吗?
我对此的想法会以某种方式传递到以前的状态,但似乎有点混乱:
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”。它似乎会相应更新。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。