秋田县:使用基本商店的状态部分更新

时间:2019-07-27 06:42:24

标签: rxjs angular-akita akita

我正在使用Akita作为Statemanangement,并带有用于Angular7应用程序的基本存储。 我试图更新部分状态值,但没有成功。

状态存储数据JSON模型

$cache: {users: false}
        users:{
          60b08287-59f8-49b7-ba52-6331bdb61ff0:{
                                Id: {}
                                Data:{
                                SetAsDefault: {Type: "string", Value: "Locations"}
                                }
                            }
            "id":""
        }

以下是从组件调用以更新状态的查询服务。 在评论参数中提到的传递数据的地方。

query.ts

@Injectable({ providedIn: 'root' })
export class UsersStateQuery extends Query<UserState> {
  constructor(protected store: UsersStore) {

    super(store);
  }

   /**
   * 
   * @param userID "60b08287-59f8-49b7-ba52-6331bdb61ff0"
   * @param key "Data"
   * @param key2 "SetAsDefault"
   * @param value {Type: "string", Value: "ABC"}
   */
  updateLevel2(userID:string,key,key2,value){
    // this.store.update(state=>state[userID]===userID?{...state,[[userID][key][key2]]:value}:state);
    // this.store.update(state=>({
    //   ...state,userID:{
    //     ...state[userID],key:{
    //       ...state[userID][key],key2:{
    //         ...state[userID][key][key2],
    //         key2:value
    //       }
    //     }
    //   }
    // }));
    this.store._setState( state=>({
      ...state,userID:{
        ...state[userID],key:{
          ...state[userID][key],key2:{
            ...state[userID][key][key2],
            key2:value
          }
        }
      }
    }));    
  }      
}

所以我在这里尝试更新“ SetAsDefault”值,但是没有更新。

请帮助更新部分状态。 谢谢。

0 个答案:

没有答案