0

我有一个在工厂内返回值的 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 '-- --'
    },
  }
}
4

0 回答 0