标签: store

在 Angular 中使用可观察存储和组件输入

我使用 a 开发了一个自定义角度商店,BehaviorSubject并且使用如下:

export class UserFaceComponent {

    @Input()
    public id: any;

    public presence$: Observable<boolean>;

    constructor(private _store: Store) { }

    public ngOnInit() {
        this.presence$ = this._store
            .select(s => s.users.presences)
            .pipe(
                map(p => p.includes(this.id))
            );
    }
}
Run Code Online (Sandbox Code Playgroud)

这样,当存储更改时,presence$可观察对象会发出新值。它工作得很好,但是,id传递给组件的也可能会改变。假设页面上有一个用户列表,当用户选择其中一个时,它会更新传递selectedUserIdUserFaceComponent. 这将是与以前相同的组件,但id会更新。

这意味着我必须在组件中创建一个主题,订阅钩子onChange并在 id 更改时发出该主题。然后,我必须将此可观察值与上面的可观察值合并,然后发出新值。

这可行,但非常麻烦,我不想被迫为用这种方法制作的每个组件执行此操作...我考虑了一段时间,但我找不到另一个解决方案来解决这个问题...

store rxjs angular

5
推荐指数
1
解决办法
930
查看次数

Nuxt.js vuex 存储未持久化

我的 Nuxt.js 设置遇到一些奇怪的问题。Store 中的某些状态不是持久的,每次我加载另一个视图时,它们都会回到默认值。

页面/test.vue

<template>
  <section class="section">
    <b-container>
      <b-row>
        <b-col cols=12>
          <b-button @click="setTest" variant="dark">test</b-button> | {{this.$store.state.test}} |
        </b-col>
      </b-row>
    </b-container>
  </section>
</template>

<script>
export default {
  name: 'test',
  methods: {
    setTest() {
      this.$store.commit("setTest")
    },
  }
}
</script>
Run Code Online (Sandbox Code Playgroud)

商店/index.js

export const state = () => ({
  test: "test"
})

export const mutations = {
  setTest: (state) => state.test = 'Hello'
}
Run Code Online (Sandbox Code Playgroud)

测试场景是点击“测试”按钮,调用带有突变提交“setTest”的方法,将状态设置为“Hello”。目前它工作正常,但如果我更改视图或重新加载页面,状态将设置为默认“测试”。

我究竟做错了什么?

state store vue.js vuex nuxt.js

5
推荐指数
1
解决办法
4794
查看次数

Mobx makeAutoObservable 不绑定此

我已经使用简单的 MobX 商店构建了一个基本的计数器 React 应用程序。我能够使用创建可观察的 MobX 状态,makeObservable但由于某种原因,当我尝试使用时makeAutoObservable出现错误

Cannot read property 'counter' of undefined

我怎么使用makeAutoObservable不正确?

店铺

import { makeAutoObservable, makeObservable, action, observable } from "mobx";

class SampleStore {
  counter = 0;

  constructor(arg) {
    makeAutoObservable(this);
    // makeObservable(this, {
    //   counter: observable,
    //   increment: action.bound,
    //   decrement: action.bound,
    // });
  }

  increment() {
    this.counter++;
    return this.counter;
  }

  decrement() {
    this.counter--;
    return this.counter;
  }
}

export default SampleStore;
Run Code Online (Sandbox Code Playgroud)

useStore 钩子

import { createContext, useContext } from "react";

import …
Run Code Online (Sandbox Code Playgroud)

store observable reactjs mobx mobx-react

5
推荐指数
2
解决办法
5361
查看次数

Pinia 的状态类型在动作中或外部被破坏

这里有这家商店:

interface Task {
  id?: string;
  name: string;
  done: boolean;
}

interface TodoState {
  tasks: Task[];
  loading: boolean;
}

export const useTodoStore = defineStore({
  id: 'todo',
  state: (): TodoState => ({
    tasks: [],
    loading: false,
  }),
  getters: {},
  actions: {
    async addTask(name: string): Promise<void> {
      this.loading = true;
      this.tasks.push({ name, done: false, id: generateID() });
      await sleep(200);
      this.loading = false;
    },
  },
});
Run Code Online (Sandbox Code Playgroud)

我不明白为什么当我将鼠标悬停在操作中的“任务”时,其类型不是 Task[] 但我得到

(property) tasks: {
    id?: string | undefined;
    name: string;
    done: boolean;
}[]
Run Code Online (Sandbox Code Playgroud)

如果需要的话,这是 stackblitz …

store typescript vue.js pinia

5
推荐指数
0
解决办法
877
查看次数

Zustand 从另一个 Zustand 商店获取状态

*我在react应用程序中创建了2个Zustand存储,一个称为UserStore,另一个称为SettingsStore,如何获取从UserStore到SettingsStore的状态?*

import create from 'zustand';

const UserStore = (set, get) => ({

user: {},

});
Run Code Online (Sandbox Code Playgroud)

我想将此“用户”变量用于我的另一个名为 SettingsStore 的商店

import create from 'zustand';

const SettingsStore = (set, get) => ({



});
Run Code Online (Sandbox Code Playgroud)

store state-management reactjs react-state-management zustand

5
推荐指数
2
解决办法
2万
查看次数

如何在 Flutter 应用程序中测试来自 App/Play Store 的移动深层链接?

我有一个移动应用程序(用 Flutter 开发,但与这个问题无关)。

该应用程序使用Firebase 动态链接功能将用户带入内部并激活某些功能。我尝试使用设备上已安装的应用程序激活链接,效果很好。现在我想测试从 App/Play 商店传递的 DL 是否也能工作,但由于该应用程序尚未发布,我不知道如何做到这一点。

任何想法?

android store deep-linking ios firebase-dynamic-links

5
推荐指数
1
解决办法
1028
查看次数

ExtJS:我们如何在网格中获得商店的大小

我试图获得我在网格中使用的商店的大小.但我无法找到任何方法来获得商店的大小(网格中的记录数).

任何人都可以帮助,我怎样才能实现这一目标.

谢谢,Neha

size grid extjs store

4
推荐指数
2
解决办法
2万
查看次数

EXTJS 4.0:如何实现store.sync()方法的回调方法?

我正在使用Extjs 4.0,我需要一个方法的回调store.sync()方法?有没有人有办法解决吗?非常感谢!

store sync callback extjs4

4
推荐指数
1
解决办法
9369
查看次数

如何使用hibernate将图像存储到postgres数据库中

我想使用hibernate和Java将图像存储到数据库中.我正在使用postgres数据库

我尝试了bytea数据类型来存储byte[]hibernate pojo中的图像和数据类型.

我使用了以下代码,

CREATE TABLE photo
(
  "photo_name" bytea
)
WITH (OIDS=FALSE);
ALTER TABLE photo OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)

Hibernate Pojo

public class PhotoEntity {

byte[] name;

public byte[] getName() {
    return name;
}

public void setName(byte[] name) {
    this.name = name;
}
Run Code Online (Sandbox Code Playgroud)

}

但它在映射时会出错.
请给我任何参考来做这件事.

postgresql hibernate store image hibernate-mapping

4
推荐指数
1
解决办法
1万
查看次数

带有代理的extjs树存储

我正在创建一个MVC extjs应用程序。我有一个带有商店的treepanel,它正在从php源加载数据。我收到以下json格式的响应:

[
{
    "text": "Home",
    "leaf": true,
    "dbName": "NULL",
    "children": []
},
{
    "text": "Moje Firma s.r.o.",
    "leaf": false,
    "expanded": false,
    "children": [
        {
            "text": "Vydane",
            "leaf": true,
            "dbName": "demo"
        },
        {
            "text": "Prijate",
            "leaf": true,
            "dbName": "demo"
        }
    ]
},
{
    "text": "Já Živnostník",
    "leaf": false,
    "expanded": false,
    "children": [
        {
            "text": "Vydane",
            "leaf": true,
            "dbName": "demo_de"
        },
        {
            "text": "Prijate",
            "leaf": true,
            "dbName": "demo_de"
        }
    ]
},
{
    "text": "Nezisková organizace",
    "leaf": false,
    "expanded": false,
    "children": [ …
Run Code Online (Sandbox Code Playgroud)

extjs store models treepanel

4
推荐指数
1
解决办法
5485
查看次数