码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • NgRx不使用effect,怎样将数据存入store


    在ngrx中,如果你不想使用 @Effect 来处理副作用(如异步操作),你可以直接在 reducer 中将数据存入 store。以下是如何实现的一般步骤:

    创建一个 Action 类:首先,创建一个 Action 类来描述你要执行的操作,例如添加数据到 store。

    // my-actions.ts
    import { createAction, props } from '@ngrx/store';
    
    export const addData = createAction('[My Component] Add Data', props<{ data: any }>());
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    更新 reducer:在你的 reducer 中,添加一个处理该 Action 的 case,以将数据存入 store。

    // my-reducer.ts
    import { createReducer, on } from '@ngrx/store';
    import { addData } from './my-actions';
    
    export const initialState = {
      data: null,
    };
    
    const myReducer = createReducer(
      initialState,
      on(addData, (state, { data }) => {
        return { ...state, data };
      })
    );
    
    export function reducer(state, action) {
      return myReducer(state, action);
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    在组件中分派 Action:在你的组件中,当你要将数据添加到 store 时,分派上面定义的 Action。

    // my-component.ts
    import { Component } from '@angular/core';
    import { Store } from '@ngrx/store';
    import { addData } from './my-actions';
    
    @Component({
      selector: 'app-my-component',
      template: `
        <button (click)="addDataToStore()">Add Data to Store</button>
      `,
    })
    export class MyComponent {
      constructor(private store: Store) {}
    
      addDataToStore() {
        const dataToAdd = // 数据的来源,例如从表单中获取
        this.store.dispatch(addData({ data: dataToAdd }));
      }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    这样,当你点击 “Add Data to Store” 按钮时,addData Action 将被分派,并且 reducer 将根据该 Action 更新 store 中的数据。

    这是一个简单的示例,展示了如何在ngrx中将数据存入 store,而不使用 @Effect。如果你需要执行更复杂的操作,例如从服务器获取数据或处理其他异步操作,可能需要考虑使用 @Effect 来处理这些副作用。

  • 相关阅读:
    extractvalue报错注入理论及实战
    Quartz.Net详解
    基于JAVA企业公开招聘系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    浅谈SparkSQL基本概念和原理
    elasticSearch学习笔记
    华为云云耀云服务器L实例评测|基于L实例安装Prometheus+Grafana插件实现数据可视化监控
    【附源码】Python计算机毕业设计万达影院售票管理系统
    react native使用自定义图标iconfont与react-native-vector-icons
    金和OA系统,C6版本,公文流程里面的附件,在服务器打开是乱码,进行了加密,求解密
    Java 使用Velocity引擎生成代码
  • 原文地址:https://blog.csdn.net/weixin_43160662/article/details/132867094
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号