目前,当更改组件中的状态时,我将状态订阅到一个存储中,当我调用的函数结束时,该存储会更新。我这样做:
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'。它似乎会相应地更新。