我有一个在工厂内返回值的 getter,但是当redux-tokit更改我的值时,getter 不会更新。我在没有 redux-toolkit 的情况下尝试了它,它工作正常。
在我的 reducersetBalanceVisibility
中,当值isVisible
更改时,getterformattedValueSignal
不会更新。
/*Redux*/
const initialState = {
current: userFactory(),
isLoading: false,
hasError: false,
}
const userSlice = createSlice({
name: '@user',
initialState,
reducers: {
setBalanceVisibility(state) {
state.current.balance.isVisible = !state.current.balance.isVisible
},
},
})
/*Factory*/
export function userFactory(object) {
if (!object) {
return null
}
const { name, email, accountBalance } = object
return {
name,
email,
balance: balanceFactory(accountBalance),
}
}
export function balanceFactory(object) {
if (!object) {
return null
}
const { value, formattedValue, isVisible } = object
return {
value,
formattedValue,
isVisible,
get formattedValueSignal() {
if (this.isVisible) {
return this.formattedValue
}
return '-- --'
},
}
}